JavaScript

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

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

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

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

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アクセスランキング にほんブログ村