Jquery .on()提交事件

Ant*_*mov 87 forms ajax jquery submit

我遇到了问题.on().我有多个表单元素(表单class="remember"),我也form.remember使用AJAX 添加另一个.所以,我希望它能够处理提交事件,例如:

$('form.remember').on('submit',function(){...}) 
Run Code Online (Sandbox Code Playgroud)

但是使用AJAX添加的表单不适用于它.

问题出在哪儿?这是一个错误吗?

Dip*_*mar 194

您需要将事件委派给文档级别

$(document).on('submit','form.remember',function(){
   // code
});
Run Code Online (Sandbox Code Playgroud)

$('form.remember').on('submit'同样的工作,$('form.remember').submit(但当你使用$(document).on('submit','form.remember'它时,它也适用于以后添加的DOM.

  • 还要记住,`$(document).on`的性能远低于`$('form.remember').on('submit'`.它现在必须监听**所有**提交事件如果可能的话,将范围限制为比监听`on`` document`要好得多 (21认同)
  • $('body').on('submit','form.remember',function(){// code}); 解决了我的问题 (4认同)

vit*_*ira 32

我遇到了同样的症状问题.在我的情况下,事实证明我的提交功能缺少"返回"声明.

例如:

 $("#id_form").on("submit", function(){
   //Code: Action (like ajax...)
   return false;
 })
Run Code Online (Sandbox Code Playgroud)

  • 请注意,“return false;”不会提交表单。要提交表单,请使用“return true;”。 (2认同)
  • 如果他使用 ajax - 提交将由 ajax 完成,稍后 200 http 状态将执行预期的活动。所以 return false 会有用。 (2认同)