Wie vermeide ich das Absenden von Formularen?
P粉545218185
P粉545218185 2023-08-21 13:38:16
0
2
514
<p>Ich habe irgendwo ein Formular mit einer Schaltfläche zum Senden. </p> <p>Allerdings möchte ich das Commit-Ereignis irgendwie „abfangen“ und verhindern, dass es eintritt. </p> <p>Gibt es eine Möglichkeit, dies zu tun? </p> <p>Ich kann die Schaltfläche „Senden“ nicht ändern, da sie Teil eines benutzerdefinierten Steuerelements ist. </p>
P粉545218185
P粉545218185

Antworte allen(2)
P粉463418483

您可以像这样使用内联事件onsubmit

<form onsubmit="alert('停止提交'); return false;">

或者

<script>
   function toSubmit(){
      alert('我不会提交');
      return false;
   }
</script>

<form onsubmit="return toSubmit();">

示例

现在,在开发大型项目时,这可能不是一个好主意。您可能需要使用事件监听器。

在这里阅读有关内联事件 vs 事件监听器(addEventListener和IE的attachEvent)的更多信息。因为我无法比Chris Baker解释得更好。

P粉399585024

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

html

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

script

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;
}
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage