JQuery:在提交时不起作用

我正在尝试捕获所有表单提交事件,从action属性获取url并使用它使用AJAX将表单内容发送到该地址。 所以我需要的只是提交事件处理程序中的一个。 但是我很快遇到了麻烦,因为它似乎没有在IE中工作。

$(document).submit(function(e) { alert('clicked'); e.preventDefault(); }); 

这是我用于跨浏览器测试目的的代码。 它适用于Chrome,Firefox,但不适用于IE。 我不允许在文档上设置事件监听器吗?

看看jQuery API:

JavaScript提交事件在Internet Explorer中不会出现气泡。 但是,依赖于事件委托和提交事件的脚本将在jQuery 1.4之后在浏览器中一致地工作,这会对事件的行为进行规范化。 ( api.jquery.com/submit )

submit事件不会在Internet Explorer中冒泡,因此永远不会通知document元素submit事件。 jQuery会为你规范化,但只有你使用事件委托。 这并不难做到,事实上如果它的复杂程度更高,可能会使你的代码变得更好:

 $(document).on('submit', 'form', function(e) { alert('clicked'); e.preventDefault(); }); 

这保持了绑定到document的优点(例如,捕获不存在的元素上的事件),同时使其在IE中成为可能。 请注意,在事件处理程序中,这现在是form元素,而不是document

将监听器附加到表单

 $("form").submit(function(e) { alert('clicked'); e.preventDefault(); }); 

关于什么:

 $("form").submit(function(e) { alert('clicked'); e.preventDefault(); });