• HOME > 
  • JavaScript > 
  • Javascriptでフォーム送信時に確認ダイアログを出す方...

Javascriptでフォーム送信時に確認ダイアログを出す方法【onsubmitとconfirmメソッド】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

フォーム送信時に確認ダイアログを出すには?

WebサイトやWebサービス(アプリ)ではフォームを使って様々な処理を行いますが、ユーザーが間違ってボタンを押したときに即処理が実行されてしまうと困ることがあります。

特に削除などを行う前には、ダイアログを表示させてユーザーに処理を続行して良いか確認することが望ましいのではないでしょうか。

確認ダイアログの例

このページではJavascriptでフォーム送信時に確認ダイアログを出す方法を解説します。

Javascriptでフォーム送信時に確認ダイアログを出すには、「confirmメソッド」と「onsubmit属性」の2つを使用します。

confirmメソッドでダイアログを表示する処理を作る

まずはconfirmメソッドを使ってブラウザのダイアログボックスを呼び出す処理を用意します。

メッセージボックスを表示するalertメソッドと異なり、confirmメソッドは「OK」と「キャンセル」のどちらかをユーザーが選択することができます。

多くの場合、以下のように条件分岐に組み込んで使用します。

confirmメソッドの書き方

今回はフォームの送信を続行するかキャンセルするかという処理のため、次のようなコードになります。送信ボタン押下で実行するにようにしたいので関数にしておきます。

Javascript

function fmConfirm(){
    if(confirm('送信してよろしいですか?')){
        return true;
    }else{
        return false;
    }
}

ブラウザのダイアログボックスなので、デザインや表示位置は閲覧しているブラウザによって異なります。

onsubmit属性で送信時にイベントを実行させる

フォームの送信ボタン(submit)が押された時に特定の処理(関数)を実行させるためにはonsubmit属性を使用します。

onsubmit属性は以下のようにformタグに記述して使用します。送信ボタンが押されると任意の関数に記述した処理が実行されます。

今回は先ほどの関数を実行させたいので、次のように記述します。

HTML

<form method="post" action="XXX.php" onsubmit="return fmConfirm()">
-省略-
</form>

実行する関数の前にreturnを付ける

confirmメソッドと組み合わせてonsubmitを記述する際のポイントは、実行させる関数の前に「return」を付け加えるという点です。

仮にreturnをつけなくても関数自体は呼び出されますが、キャンセルを押しても送信処理が実行されてしまうためconfirmによるダイアログが意味を成しません。

onsubmitにはreturnを付けることを忘れないように注意してください。

最終的なソースコードは以下の通りです。

HTML

<form method="post" action="XXX.php" onsubmit="return fmConfirm()">
<input type="text" name="your-name" placeholder="名前を入力してください。">
<button type="submit">送信</button>
</form>

<script>
function fmConfirm(){
    if(confirm('送信してよろしいですか?')){
        return true;
    }else{
        return false;
    }
}
</script>

プレビュー

まとめ

以上がJavascriptのonsubmitとconfirmを使ってフォーム送信時に確認ダイアログを出す方法です。

フォームを設置する際には必要に応じて確認ダイアログも実装させてみてはいかがでしょうか。

広告
広告

関連する記事

サムネイル

JSでセレクト値が変更されたらフォームを送信を実行する方法【……

2024年07月02日
ユーザーがセレクトボックスの値を変更したタイミングでフォームの送信を実行するという処理を実装する機会があったので、その方法を備忘録として残しておきます。
サムネイル

JSでチェックボックスの全選択全解除を行う方法【すべて選択】

2024年07月02日
フォームのチェックボックスの数が多いときにあると便利な、ワンクリックで全選択や全解除できる機能をJavaScriptで作る機会があったので、その方法を備忘録として残します。
サムネイル

JSで配列の重複チェックを行う【Setオブジェクトを利用】

2024年07月02日
JavaScriptで配列の中に重複する値が存在するか判定したい状況があり、その時に調べたことを備忘録として残しておきます。今回は単純に重複しているかどうかだけ分かればよかったので、「Setオブジェクト」を使って重複チェックを行う方法を選びました。
サムネイル

JSのkeyup・keydown・keypressの違い【キ……

2024年06月13日
JavaScriptの「keyup」「keypress」「keydown」はいずれもユーザーのキーボードイベントを処理したい時に使用します。それぞれ処理が発火するタイミングなどに違いがあるので、用途に応じた使い分けが必要です。
サムネイル

JSでテキストボックスに入力された値を即時取得する【this……

2024年06月13日
ユーザーがinputのテキストボックスに入力した値をJavaScriptを使って即時取得して処理させたい状況がありましたので、その方法を備忘録として残しておきます。
サムネイル

JavaScriptで偶数と奇数を判定する方法【テーブルの行……

2024年05月16日
ある数値が偶数か奇数かは、「数値を2で割って余りが0なら偶数」「数値を2で割って余りが0でなければ奇数」という方法で判別を行います。
サムネイル

JSで郵便番号検索を実装できるライブラリ【yubinbang……

2024年04月12日
yubinbango.jsは郵便番号検索(郵便番号を打ち込むと住所が自動入力される)機能を簡単に実装できるのライブラリです。一実装方法がとても簡単なのでメールフォームなどに手軽に郵便番号検索機能を導入したい方におすすめです。