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(); });