ダイアログの使い方|alert・confirm・prompt の戻り値まで解説

alert・confirm・prompt の戻り値を確認する

JavaScriptのネイティブダイアログ3種を、戻り値の扱いまで含めて解説します。各デモと同じ動きを再現できるHTML・JavaScriptを掲載しています。
HTML・CSS・JSコードプレビューツールでも動作を確認できます。

まとめ記事 ダイアログは「ボタンでメッセージを表示する」5つの方法のひとつです アコーディオン・モーダル・ポップアップ・トースト通知との違いと使い分けを、比較表つきでまとめています。

① alert() — メッセージだけ伝える

まだ表示していません

HTML
<button class="alert-button" type="button">Alert を表示</button>
<p class="alert-result"></p>
CSS
.alert-button {
  padding: 12px 28px;
  border: 1px solid #c4b5fd;
  border-radius: 8px;
  background: #fff;
  color: #5b21b6;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.alert-result {
  margin: 12px 0 0;
  padding: 10px 14px;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #f0fdf4;
  color: #166534;
  font-size: 14px;
  font-family: Consolas, "Courier New", monospace;
}
JS
var alertButton = document.querySelector('.alert-button');
var alertResult = document.querySelector('.alert-result');

alertButton.addEventListener('click', function() {
  window.alert('メッセージを表示します。');
  alertResult.textContent = 'ダイアログを表示しました。戻り値はありません。';
});
alert(message)

ユーザーにメッセージを見せるだけのダイアログです。OKボタンのみで、戻り値はありません。閉じるまでページ上の操作は止まります。手早く伝える用途向きですが、多用すると体験を損ないやすいので注意が必要です。

② confirm() — OK / キャンセルで分岐する

まだ表示していません

HTML
<button class="confirm-button" type="button">Confirm を表示</button>
<p class="confirm-result"></p>
CSS
.confirm-button {
  padding: 12px 28px;
  border: 1px solid #6ee7b7;
  border-radius: 8px;
  background: #fff;
  color: #047857;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.confirm-result {
  margin: 12px 0 0;
  padding: 10px 14px;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #f0fdf4;
  color: #166534;
  font-size: 14px;
  font-family: Consolas, "Courier New", monospace;
}
JS
var confirmButton = document.querySelector('.confirm-button');
var confirmResult = document.querySelector('.confirm-result');

confirmButton.addEventListener('click', function() {
  var answered = window.confirm('続けますか?');

  if (answered) {
    confirmResult.textContent = '戻り値: true(OK を選択)';
  } else {
    confirmResult.textContent = '戻り値: false(キャンセルを選択)';
  }
});
confirm(message) → true / false

OK とキャンセルの2択を出します。OKなら true、キャンセルやEscなら false が返ります。この真偽値を if で見て、削除の実行可否など処理を分岐できます。

③ prompt() — 文字を入力してもらう

まだ表示していません

HTML
<button class="prompt-button" type="button">Prompt を表示</button>
<p class="prompt-result"></p>
CSS
.prompt-button {
  padding: 12px 28px;
  border: 1px solid #fcd34d;
  border-radius: 8px;
  background: #fff;
  color: #92400e;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.prompt-result {
  margin: 12px 0 0;
  padding: 10px 14px;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #f0fdf4;
  color: #166534;
  font-size: 14px;
  font-family: Consolas, "Courier New", monospace;
}
JS
var promptButton = document.querySelector('.prompt-button');
var promptResult = document.querySelector('.prompt-result');

promptButton.addEventListener('click', function() {
  var typedText = window.prompt('お名前を入力してください', '');

  if (typedText !== null && typedText !== '') {
    promptResult.textContent = '入力内容: ' + typedText;
  } else if (typedText === '') {
    promptResult.textContent = '空文字が返されました。';
  } else {
    promptResult.textContent = 'キャンセル(null)が返されました。';
  }
});
prompt(message, defaultValue) → string / null

入力欄つきのダイアログです。第1引数がメッセージ、第2引数が初期値です。OKなら入力文字列、キャンセルやEscなら null が返ります。空のままOKした場合は空文字 “” になるため、null と空文字は分けて判定します。

注意点:alert・confirm・prompt はブラウザ標準の見た目で、表示中はページ操作を止めます。デザインの統一や複数ボタン、背景クリックでの閉じ方が必要な場合は、モーダルやポップアップなどのカスタムUIを検討してください。見た目を変えたいときはダイアログデザイン集も参照できます。

alert・confirm・prompt の戻り値の違いは?

alert に戻り値はありません。confirmtrue / falseprompt は入力文字列または null を返します。分岐の前に、どの関数が何を返すかを押さえておくと実装ミスが減ります。

prompt の空文字と null はどう違いますか?

入力欄を空のまま OK すると ""(空文字)、キャンセルや Esc だと null です。どちらも「falsy」なので、if (typedText) だけでは区別できません。上のデモのように null と空文字を分けて判定してください。

ネイティブダイアログとモーダルの使い分けは?

すぐ動く確認や学習用途ならネイティブダイアログで十分です。サイトのデザインに合わせたい、ボタンを3つ以上置きたい、背景クリックやアニメーションが必要、という場合はモーダルウィンドウポップアップを使います。

ダイアログを多用すると何が問題ですか?

表示中はページ全体の操作が止まるため、連発すると操作が途切れます。見た目もブラウザ任せでサイトのUIと揃いません。軽い通知ならトースト通知、比較しながら選ぶならまとめ記事の使い分けも参考にしてください。


当サイトで公開しているWebデザインやUIの実装例は、一覧として以下記事に纏めています。

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