JavaScriptフォーム送信-送信の確認またはキャンセルダイアログボックス


183

フィールドが正しく入力されているかどうかを尋ねる警告のある単純なフォームの場合、これを行う関数が必要です。

  • 次の2つのオプションでボタンがクリックされたときに警告ボックスを表示します。

    • 「OK」をクリックすると、フォームが送信されます
    • キャンセルをクリックすると、警告ボックスが閉じ、フォームを調整して再送信できます

JavaScriptの確認が機能すると思いますが、どうすればいいのかわかりません。

私が今持っているコードは:

function show_alert() {
  alert("xxxxxx");
}
<form>
  <input type="image" src="xxx" border="0" name="submit" onclick="show_alert();" alt="PayPal - The safer, easier way to pay online!" value="Submit">
</form>

回答:


399

単純なインラインJavaScript確認で十分です。

<form onsubmit="return confirm('Do you really want to submit the form?');">

次のようなことができる検証を行わない限り、外部関数は必要ありません。

<script>
function validate(form) {

    // validation code here ...


    if(!valid) {
        alert('Please correct the errors in the form!');
        return false;
    }
    else {
        return confirm('Do you really want to submit the form?');
    }
}
</script>
<form onsubmit="return validate(this);">

28

コメントで指摘された問題は有効であるため、ここではその影響を受けない別のリビジョンを示します。

function show_alert() {
  if(!confirm("Do you really want to do this?")) {
    return false;
  }
  this.form.submit();
}



2

OK、コードを次のように変更してください:

<script>
function submit() {
   return confirm('Do you really want to submit the form?');
}
</script>

<form onsubmit="return submit(this);">
   <input type="image" src="xxx" border="0" name="submit" onclick="show_alert();"
      alt="PayPal - The safer, easier way to pay online!" value="Submit">
</form>

また、これは実行中のコードです。私はそれがどのように機能するかを簡単に確認できるようにしています。以下のコードを実行して結果を確認してください。

function submitForm() {
  return confirm('Do you really want to submit the form?');
}
<form onsubmit="return submitForm(this);">
  <input type="text" border="0" name="submit" />
  <button value="submit">submit</button>
</form>


0

フォーム送信に何らかの条件を適用したい場合は、このメソッドを使用できます

<form onsubmit="return checkEmpData();" method="post" action="process.html">
  <input type="text" border="0" name="submit" />
  <button value="submit">submit</button>
</form>

メソッドアクションの属性はonsubmit属性の後に書き込むことに常に注意してください

JavaScriptコード

function checkEmpData()
{
  var a = 0;

  if(a != 0)
  {
    return confirm("Do you want to generate attendance?");
  }
   else
   {
      alert('Please Select Employee First');
      return false;
   }  
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.