我有一个表单,其中某处有一个提交按钮。
但是,我想以某种方式“捕获”提交事件并防止它发生。
有什么办法可以做到这一点?
我无法修改“提交”按钮,因为它是自定义控件的一部分。
与其他答案不同,返回false仅是答案的 一部分 。考虑在return语句之前发生JS错误的情况…
false
html
<form onsubmit="return mySubmitFunction(event)"> ... </form>
脚本
function mySubmitFunction() { someBug() return false; }
返回false此处将不会执行,并且表单将以任何一种方式提交。您还应该致电preventDefault以阻止Ajax表单提交的默认表单操作。
preventDefault
function mySubmitFunction(e) { e.preventDefault(); someBug(); return false; }
在这种情况下,即使存在错误,表单也不会提交!
或者,try...catch可以使用一个块。
try...catch
function mySubmit(e) { e.preventDefault(); try { someBug(); } catch (e) { throw new Error(e.message); } return false; }