フォームが送信されないようにするにはどうすればいいですか? 質問する

フォームが送信されないようにするにはどうすればいいですか? 質問する

どこかに送信ボタンがあるフォームがあります。

ただし、送信イベントを何らかの方法で「キャッチ」し、発生しないようにしたいと考えています。

これを実行する方法はありますか?

送信ボタンはカスタム コントロールの一部であるため、変更できません。

ベストアンサー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;
}

おすすめ記事