【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
総合評価
( 5 )
メリット
  • 誰でも分かるように嚙み砕いて説明してくれる
  • アニメーションの知識が深く学べる
  • 1つのWebサイトを作りながら学べる
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

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

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次