どこかに送信ボタンがあるフォームがあります。
ただし、送信イベントを何らかの方法で「キャッチ」し、発生しないようにしたいと考えています。
これを実行する方法はありますか?
送信ボタンはカスタム コントロールの一部であるため、変更できません。
ベストアンサー1
他の回答とは異なり、return は回答の一部にfalse
すぎません。return ステートメントの前に JS エラーが発生するシナリオを考えてみましょう...
html
<form onsubmit="return mySubmitFunction(event)">
...
</form>
脚本
function mySubmitFunction()
{
someBug()
return false;
}
ここでの戻りはfalse
実行されず、いずれにしてもフォームが送信されます。AjaxpreventDefault
フォーム送信のデフォルトのフォーム アクションを防ぐためにも、を呼び出す必要があります。
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;
}