1. ホーム
  2. ジャバスクリプト

[解決済み】フォーム送信を停止させるJavaScriptコード

2022-04-01 18:33:45

質問

フォーム送信を停止させる方法として、JavaScriptの関数からfalseを返すという方法があります。

送信ボタンがクリックされると、バリデーション関数が呼び出されます。フォームのバリデーションでは、あるケースがありますね。その条件を満たした場合、私は以下の名前の関数を呼び出します。 returnToPreviousPage()です。

function returnToPreviousPage() {
    window.history.back();
}

私はJavaScriptを使用しており Dojoツールキット .

前のページに戻るのではなく、フォームを送信してしまいます。この送信を中止し、前のページに戻るにはどうしたらよいでしょうか?

解決方法を教えてください。

関数の戻り値を使って、フォーム送信を阻止することができます

<form name="myForm" onsubmit="return validateMyForm();"> 

といった関数があります。

<script type="text/javascript">
function validateMyForm()
{
  if(check if your conditions are not satisfying)
  { 
    alert("validation failed false");
    returnToPreviousPage();
    return false;
  }

  alert("validations passed");
  return true;
}
</script>

Chrome 27.0.1453.116 mの場合、上記のコードが動作しない場合は、次のようにしてください。 イベントハンドラのパラメータreturnValueを設定する を false に設定すると動作するようになります。

サムさん、情報提供ありがとうございます。

EDIT :

Vikram の validateMyForm() が false を返した場合の回避策に感謝します。

 <form onsubmit="event.preventDefault(); validateMyForm();">

ここで、validateMyForm() はバリデーションに失敗した場合に false を返す関数です。重要なポイントは、イベント名を使用することです。例えば e.preventDefault() のように使うことはできません。