JavaScriptでキャンセルボタンがデフォルトでフォーカスされているconfirmダイアログを作成する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaScriptでキャンセルボタンがデフォルトでフォーカスされているconfirmダイアログを作成する方法について現役エンジニアが解説しています。ダイアログとは、別の画面にメッセージを表示させる物です。jQueryのjquery-confirmのライブラリでダイアログを作成する方法を解説します。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaScriptでキャンセルボタンがデフォルトでフォーカスされているconfirmダイアログを作成する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使って初心者向けに解説します。
JavaScriptについてそもそもよく分からないという方は、JavaScriptとは何なのか解説した記事をまずご覧ください。
なお本記事は、TechAcademyのオンラインブートキャンプ、JavaScript/jQuery講座の内容をもとにしています。

今回は、JavaScriptに関する内容だね!

どういう内容でしょうか?

JavaScriptでキャンセルボタンがデフォルトでフォーカスされているconfirmダイアログを作成する方法について詳しく説明していくね!

お願いします!
目次
ダイアログを作成する方法
ダイアログとは、入力項目が誤っている時に警告メッセージを表示したり、submitをするときにユーザーに送信しても良いかを確認するメッセージを表示したり、何らかのアクションをした時に、別の画面にメッセージを表示させる事を総じて使用されるものです。
例えば、警告メッセージ(アラート)を表示するには、JavaScriptで
alert('警告メッセージ');
で表示させることが出来ます。また、確認メッセージ(confirm)を表示するには、JavaScriptで
window.confirm("確認メッセージ");
とすることが出来ます。
キャンセルボタンがデフォルトでフォーカスされているダイアログを作成する方法
先ほどの、alert/confirmですが、alertは表示時に「OK」ボタンが表示されます。confirmは表示時に「OK」「キャンセル」ボタンが表示されます。また、この時にデフォルトで「OK」が選択された状態になっています。
しかし、開発を行う中で「キャンセル」をデフォルトにしたいシーンもあるかと思います。残念ながらJavaScriptのconfirmのみでは実装することはできません。
そこで、jQueryの”jquery-confirm”を利用して実装します。もちろん他にもあるのですが、簡単なのでこちらをご紹介します。
実際に書いてみよう
まずは、CDNでjQueryを利用しています。また、デフォルトの設定する代わりに、色の設定でキャンセルを目立たせるのと同時に、”Enter”ボタンを押下したときにキャンセルが実行される様にしています。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.2/jquery-confirm.min.js"></script>
</head>
<body>
<input type="button" id="confirm" value="jquery.confirm表示" />
<script>
$(function(){
$("#confirm").click(function(){
var result = $.confirm({
'title' : 'JavaScriptでConfirmをカスタマイズする方法',
'message' : 'jQuery.confirmで表現しています',
'buttons' : {
OK: {
action: function() {
console.log("OK");
return true;
}
},
NO: {
btnClass: 'btn-blue',
keys: ['enter'],
action: function() {
console.log("NO");
}
}
}
});
});
alert(result)
});
</script>
</body>
</html>
まとめ
今回は、”jquery-confirm”を利用しましたが他にも方法はあります。
また、自身でconfirm用のHTMLを作成して、それを表示、非表示させるなどで対応する方法もあります。色々と試してみてください。
筆者プロフィール
| 小宮山晃史(こみやまこうじ)
現在はOracle系システムの導入コンサルに勤め、仕事でコーディングをする機会は少なくなくなっているが、ライフワークで数多くの言語を勉強中。 iphoneのアプリ開発やWEBサーバの構築など幅広く挑戦しています。 |

内容分かりやすくて良かったです!

ゆかりちゃんも分からないことがあったら質問してね!

分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaScript・jQueryを使ったWebサービス公開を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。