我有一个表单,其中某个地方有一个提交按钮。
然而,我想以某种方式‘捕获’提交事件并防止它发生。
有什么办法我能做到这一点吗?
我不能修改submit按钮,因为它是自定义控件的一部分。
与其他答案不同,返回false
只是答案的一部分。考虑这样一个场景:在返回语句之前发生了一个JS错误...
HTML
<form onsubmit="return mySubmitFunction(event)">
...
</form>
脚本
function mySubmitFunction()
{
someBug()
return false;
}
在这里返回false
将不会执行,并且无论以哪种方式都将提交表单。您还应该调用preventdefault
来阻止Ajax表单提交的默认表单操作。
function mySubmitFunction(e) {
e.preventDefault();
someBug();
return false;
}
在这种情况下,即使有bug,表单也不会提交!
或者,可以使用try...catch
块。
function mySubmit(e) {
e.preventDefault();
try {
someBug();
} catch (e) {
throw new Error(e.message);
}
return false;
}