2017-05-05 51 views
0

我有一個web2py應用程序,我可以通過按下'Enter'來提交自定義的表單,但是當點擊按鈕時,我得到一個錯誤。這是代碼; 這不起作用爲什麼不能用這個按鈕提交表格

<div class="message_input_wrapper"> 
    {{=form.custom.begin}} 
    <input name="body" class="message_input" placeholder="Type your message here..."/>     
    {{=form.custom.end}}     
</div> 
<button type="submit" class="send_message">Send</button> 

這不起作用或者:

<div class="message_input_wrapper"> 
    {{=form.custom.begin}} 
    <input name="body" class="message_input" placeholder="Type your message here..."/>     
    {{=form.custom.end}} 
    <button type="submit" class="send_message">Send</button>    
</div> 

這是js代碼:

(function() { 
var Message; 
Message = function (arg) { 
    this.text = arg.text, this.message_side = arg.message_side; 
    this.draw = function (_this) { 
     return function() { 
      var $message; 
      $message = $($('.message_template').clone().html()); 
      $message.addClass(_this.message_side).find('.text').html(_this.text); 
      $('.messages').append($message); 
      return setTimeout(function() { 
       return $message.addClass('appeared'); 
      }, 0); 
     }; 
    }(this); 
    return this; 
}; 
$(function() { 
    var getMessageText, message_side, sendMessage; 
    message_side = 'right'; 
    getMessageText = function() { 
     var $message_input; 
     $message_input = $('.message_input'); 
     return $message_input.val(); 
    }; 
    sendMessage = function (text) { 
     var $messages, message; 
     if (text.trim() === '') { 
      return; 
     } 
     $('.message_input').val(''); 
     $messages = $('.messages'); 
     message_side = message_side === 'left' ? 'right' : 'left'; 
     message = new Message({ 
      text: text, 
      message_side: message_side 
     }); 
     message.draw(); 
     return $messages.animate({ scrollTop: $messages.prop('scrollHeight') }, 300); 
    }; 
    $('.send_message').click(function (e) { 
     return sendMessage(getMessageText()); 
    }); 
    $('.message_input').keyup(function (e) { 
     if (e.which === 13) { 
      return sendMessage(getMessageText()); 
     } 
    }); 
+0

你得到了什麼錯誤? –

+0

它不會提交表單,點擊按鈕。我試圖打印錯誤:print form.errors ...並得到:storage:{}打印。 – user3346746

+0

我有最奇怪的感覺,提交按鈕是在渲染頁面

元素之外。是否{{= form.custom.end}}'輸出'
'?如果是,那麼你需要在它上面放置'button'(或者在按鈕的屬性中設置'form =「id-of-form」')。 –

回答

1

{{=form.custom.end}}包括形式結束標記(即,</form>) 。由於提交按鈕位於表單之外,因此它不會提交表單。只需將{{=form.custom.end}}移至提交按鈕標記之後即可。