0

使用以下函数捕获两个动态生成的表单提交,但不会阻止它们的提交。

$('body').delegate('.edit_faq, .new_faq', 'submit', function(e){
      e.preventDefault();
      //voodoo
    });

我正在使用以下内容,使用live. 这可行,但 live 已贬值,最终结果是此代码最终成为一个灵活的插件。

$('.edit_faq').add('.new_faq').live('submit', function(e){
  e.preventDefault();
  //magic
});
4

3 回答 3

1

你所写的实际上是有效的。

查看:

http://jsfiddle.net/peuqU/

按下 run as jsfiddle 有时需要在测试提交之前刷新。

我只能用 chrome 23 对其进行测试。

于 2012-09-05T10:17:49.393 回答
0

尝试哪种是推荐的方式,并返回 false

$('body').on('submit', '.edit_faq, .new_faq', function(e){
      e.preventDefault();
     //Do your stuff here.

    });

至于为什么还是会出现提交,可能是页面某处出现了JS错误?

于 2012-09-05T10:02:55.553 回答
0

固定的 -

问题是代码需要包装在 onReady 文档中:

$(document).ready(function(){
  $('body').on('submit', '.edit_faq, .new_faq', function(e){
      e.preventDefault();
      //voodoo
  });
})

我突然想到,既然 live 不需要准备好,那也许这仍然是错误的?

于 2012-09-05T10:18:25.330 回答