提问者:小点点

如何防止表单被提交?


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

然而,我想以某种方式‘捕获’提交事件并防止它发生。

有什么办法我能做到这一点吗?

我不能修改submit按钮,因为它是自定义控件的一部分。


共1个答案

匿名用户

与其他答案不同,返回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;
}