一尘不染

如何防止表格被提交?

javascript

我有一个表单,其中某处有一个提交按钮。

但是,我想以某种方式“捕获”提交事件并防止它发生。

有什么办法可以做到这一点?

我无法修改“提交”按钮,因为它是自定义控件的一部分。


阅读 305

收藏
2020-04-25

共1个答案

一尘不染

与其他答案不同,返回false仅是答案的 一部分 。考虑在return语句之前发生JS错误的情况…

html

<form onsubmit="return mySubmitFunction(event)">
  ...
</form>

脚本

function mySubmitFunction()
{
  someBug()
  return false;
}

返回false此处将不会执行,并且表单将以任何一种方式提交。您还应该致电preventDefault以阻止Ajax表单提交的默认表单操作。

function mySubmitFunction(e) {
  e.preventDefault();
  someBug();
  return false;
}

在这种情况下,即使存在错误,表单也不会提交!

或者,try...catch可以使用一个块。

function mySubmit(e) { 
  e.preventDefault(); 
  try {
   someBug();
  } catch (e) {
   throw new Error(e.message);
  }
  return false;
}
2020-04-25