JavaScript

【JavaScript】confirmでOKが押された時にのみ処理を実行する方法

こちらの記事では、JavaScriptのconfirmメソッドの確認ダイアログでOKが押された時にのみ処理を実行する方法について解説しています。

JavaScriptの学習におすすめ参考書
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

参考書が苦手な人はUdemyの動画がおすすめ
ガチで学びたい人のためのWEB開発徹底実践(フロントエンド編)

動画情報
作成者CodeMafia
学習時間19.5時間
受講者数28,547人
レビュー (5,025件)
動画の詳細はこちら

confirmの戻り値はtrueとfalse

confirmメソッドは、デフォルトで「OKボタン」「キャンセルボタン」の2つのボタンが確認ダイアログで表示し、ユーザーに再確認させることができます。

ユーザーが選択したボタンによって戻り値が異なり、OKボタンを押したら「true」・キャンセルボタンを押したら「false」が返されます。

この戻り値を使うことで、ユーザーがOKボタンを押した時にのみ特定の処理を実装することができます。

下記の「confirm戻り値確認」ではボタンをクリックすると、確認ダイアログが表示され選択したボタンの戻り値を確認することができます。

confirm戻り値確認

戻り値:

<button id="sample-btn">クリックすると確認ダイアログが表示されるよ!</button>
<p>戻り値:<span id="sample-answer"></span></p>

<script>
window.addEventListener('DOMContentLoaded',function(){
  const sampleBtn = document.getElementById('sample-btn');
  const sampleAnswer = document.getElementById('sample-answer');
  sampleBtn.addEventListener('click',returnBoolean,false);

  function returnBoolean(){
    sampleAnswer.textContent = confirm('確認ダイアログが表示されました');
  }
});
</script>

条件分岐でOKが押された時にのみ処理を実行させよう

こちらで紹介するサンプルコードは、「トップページに移動」と書かれたボタンをクリックすると確認ダイアログが表示され、OKボタンを押すとトップページに移動し、キャンセルボタンを押すと何も処理を行いません。

confirm戻り値確認

<button id="top-link">トップページに移動</button>

<script>
window.addEventListener('DOMContentLoaded',function(){
  const topLink = document.getElementById('top-link'); // ①
  topLink.addEventListener('click',confirmation,false); // ②
  
  function confirmation(){ // ③
    const v = confirm('確認ダイアログが表示されました'); // ④
    if(v === true){ // ⑤
      window.location.href = 'https://web-engineer-wiki.com/'; // ⑥
    }
  }
});
</script>
コード解説

  1. イベントを設定する要素を取得
  2. ①で取得した要素に対して、クリックイベントを登録し発火時にconfirmation関数を実行させる
  3. ②で設定した関数を定義
  4. confirmメソッドで確認ダイアログを表示させ、ユーザーが押したボタンの戻り値(true or false)を変数vに代入する
  5. ④で取得した戻り値がtrue(ユーザーがOKボタンを押した時)にのみ処理を実行させるよう条件分岐を使う
  6. トップページに遷移させる処理を実装

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村