我有一个带有正常表单的页面,带有一个提交按钮和一些jQuery,它绑定到表单提交事件并覆盖它e.preventDefault()
并运行一个AJAX命令.单击提交按钮但单击链接时,此工作正常onclick='document.formName.submit();'
,AJAX表单提交事件处理程序不会捕获该事件.任何想法为什么不能或如何在不绑定所有元素的情况下使其工作?
一些建议:
覆盖提交功能以进行恶意出价
var oldSubmit = form.submit; form.submit = function() { $(form).trigger("submit"); oldSubmit.call(form, arguments); }
为什么不绑定到所有标签?然后你不必做任何猴子修补,它可以像(假设所有链接都在form标签内)一样简单:
$("form a").click(function() { $(this).parents().filter("form").trigger("submit"); });
如果您使用的是jQuery,则应该通过它自己的事件机制附加事件,而不是使用"on"属性(onclick等).它还有自己的事件触发方法,恰当地命名为' trigger ',您应该使用它来激活表单提交事件.