2017-05-05 111 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}}移至提交按钮标记之后即可。