現役システムエンジニアの備忘録

技術スキルや用語などの記録を残していきます

Dialog(ダイアログ表示)

【JavaScript入門】alert・confirm・promptが嫌われる理由|UI/UXの観点からの注意点と代替案を初心者向けに解説

投稿日:2026年4月30日 更新日:

この記事で分かること

  • alertconfirmprompt が嫌われる理由
  • UI/UXの観点での問題点
  • 実務で避けられるケースと注意点
  • 代替となるUI(モーダル・トースト通知)の考え方

alertconfirmprompt は便利な反面、UI/UX の観点では多くの問題を抱えています。
この記事では「なぜ嫌われるのか」「どんな代替UIを使うべきか」を、具体例を交えて分かりやすく解説します。



alertconfirmprompt が嫌われる理由とは?

JavaScript の標準ダイアログである alertconfirmprompt は、
初心者にとっては便利な機能ですが、実務では「できれば使いたくないUI」とされることが多いです。

その理由は、ユーザー体験(UX)を損ないやすい という点にあります。
ここでは、具体的にどのような問題があるのかを解説します。

1. 画面を完全にブロックしてしまう

標準ダイアログは表示されると、画面全体の操作が完全に停止 します。
ユーザーはダイアログを閉じるまで何もできず、操作の流れが中断されます。

  • 作業のリズムが途切れる
  • 意図しないタイミングで表示されるとストレスになる
  • 複数回表示されると「邪魔」と感じる

2. デザインをカスタマイズできない

標準ダイアログはブラウザが表示するため、デザインを変更できません
サイトの雰囲気と合わず、UI の統一感が失われます。

  • ボタンの色や文言を変えられない
  • フォントやサイズも変更不可
  • ブランドイメージと合わない

3. スマホやブラウザによって挙動が異なる

特にスマホでは、標準ダイアログの挙動がブラウザごとに異なります。

  • iOS Safari では表示が制限されることがある
  • Chrome では連続表示がブロックされる場合がある
  • prompt が正常に動作しないケースもある

実務では「動作が安定しないUI」は避けられる傾向があります。

4. prompt は入力チェックが難しい

prompt は入力欄を提供しますが、以下のような問題があります。

  • 空欄かどうかを自分で判定する必要がある
  • キャンセルと空欄の違いを判定する必要がある
  • 入力フォームとしては機能が弱い

そのため、実務では フォームやモーダル を使うことが一般的です。

5. ユーザーが驚きやすい(心理的負担)

標準ダイアログは画面中央に突然表示されるため、
ユーザーが「驚く」「ストレスを感じる」ことがあります。

特に alert を多用すると、
「このサイトは使いにくい」 と感じられる原因になります。



代替案:モーダルやトースト通知を使う

実務では、標準ダイアログの代わりに以下の UI がよく使われます。

  • モーダル(Modal):確認・入力・説明に最適
  • トースト通知(Toast):軽い通知に最適
  • スナックバー(Snackbar):操作結果の通知に最適

これらはデザインを自由にカスタマイズでき、
UX を損なわずにユーザーへ情報を伝えられます。

■ モーダルで確認ダイアログを実装する例

標準の confirm の代わりに、HTML+CSS+JS で確認モーダルを作る例です。


<!-- モーダル -->
<div id="modal" class="modal hidden">
  <div class="modal-content">
    <p>本当に削除しますか?</p>
    <button id="okBtn">OK</button>
    <button id="cancelBtn">キャンセル</button>
  </div>
</div>

.modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal.hidden { display: none; }
.modal-content {
  background: #fff;
  padding: 20px;
  border-radius: 8px;
}

const modal = document.getElementById("modal");
const okBtn = document.getElementById("okBtn");
const cancelBtn = document.getElementById("cancelBtn");

function openModal() {
  modal.classList.remove("hidden");
}

okBtn.addEventListener("click", () => {
  console.log("OK が押されました");
  modal.classList.add("hidden");
});

cancelBtn.addEventListener("click", () => {
  console.log("キャンセルされました");
  modal.classList.add("hidden");
});

// 呼び出し
openModal();

このように、モーダルならデザイン・文言・ボタン配置を自由に調整でき、
UX を損なわずに確認ダイアログを実装できます。

■ トースト通知で alert を置き換える例

軽い通知は alert ではなく、画面端に出るトーストが一般的です。


<div id="toast" class="toast hidden">保存しました!</div>

.toast {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: #333;
  color: #fff;
  padding: 12px 18px;
  border-radius: 6px;
  opacity: 0;
  transition: opacity .3s;
}
.toast.show {
  opacity: 1;
}

function showToast(message) {
  const toast = document.getElementById("toast");
  toast.textContent = message;
  toast.classList.add("show");

  setTimeout(() => {
    toast.classList.remove("show");
  }, 2000);
}

// 呼び出し
showToast("保存しました!");

alert のように画面を止めず、
ユーザーの操作を妨げない自然な通知が実現できます。

prompt の代わりに入力モーダルを使う例

prompt の代わりに、入力欄付きモーダルを使うパターンです。


<div id="inputModal" class="modal hidden">
  <div class="modal-content">
    <p>名前を入力してください</p>
    <input id="nameInput" type="text">
    <button id="submitName">送信</button>
  </div>
</div>

const inputModal = document.getElementById("inputModal");
const nameInput = document.getElementById("nameInput");
const submitName = document.getElementById("submitName");

function openInputModal() {
  inputModal.classList.remove("hidden");
}

submitName.addEventListener("click", () => {
  const name = nameInput.value.trim();
  if (!name) {
    showToast("名前を入力してください");
    return;
  }
  console.log("入力された名前:", name);
  inputModal.classList.add("hidden");
});

// 呼び出し
openInputModal();

prompt よりも入力チェックがしやすく、
UI も自由にデザインできるため、実務ではこちらが一般的です。

JavaScript 初心者におすすめの学習書籍

書籍で学ぶのが向いている人

  • alertconfirmprompt が「なぜ嫌われるのか」を根本から理解したい
  • UI/UX の基礎や、ユーザーに優しいインターフェース設計を学びたい
  • モーダル・トースト通知など、代替UIの考え方も整理したい

標準ダイアログが嫌われる理由は、JavaScript の仕組みだけでなく
UX・イベント処理・ブラウザ挙動 といった幅広い知識が関係します。
書籍ではこれらを体系的に学べるため、「なぜ標準ダイアログが避けられるのか」 を深く理解できます。

いちばんやさしい JavaScript の教本

図解が多く、JavaScript の基本動作やブラウザの仕組みを視覚的に理解できる入門書です。
標準ダイアログの特徴だけでなく、UI がブロックされる理由・UX への影響 など、
初心者が見落としがちなポイントも丁寧に学べます。

この本で解決できること:

  • alertconfirmprompt が UX を損なう理由が理解できる
  • ブラウザ標準UIの制約と、代替UIの必要性が分かる
  • 実際に動くサンプルで UI の挙動を確認できる

確かな力が身につく JavaScript「超」入門

イベント処理・UI 操作・ブラウザ挙動など、UX に直結する内容を深く学べる入門書です。
標準ダイアログの弱点だけでなく、モーダルやトースト通知などの代替UIを実装する基礎 も理解できます。

この本で解決できること:

  • alertconfirmprompt の問題点と代替手段を体系的に理解できる
  • ユーザー体験を損なわない UI 設計の基礎が身につく
  • 現代的な UI 実装に必要な JavaScript の基礎が習得できる

動画で理解を深めたい方へ(Udemy講座)

標準ダイアログが嫌われる理由は、実際の挙動を見ると理解が早いです。
動画では「画面がブロックされる」「デザインが変えられない」など、
UX を損なうポイントをそのまま確認でき、初心者でも直感的に理解できます。

初心者のためのJavaScript 完全入門

基本文法・イベント処理・ブラウザ挙動など、UI/UX の理解に欠かせない基礎を体系的に学べる講座です。
標準ダイアログの動作を実際の画面で確認できるため、「なぜ実務で避けられるのか」 が自然に理解できます。

この講座で解決できること:

  • alertconfirmprompt の UX 上の問題点を視覚的に理解できる
  • ブラウザ標準UIの制約と代替UIの考え方が分かる
  • 初心者がつまずきやすい UI 操作の概念を丁寧に解説

初心者のためのJavaScript 完全入門(Udemy)

超JavaScript 完全ガイド 2026

UI 操作・イベント制御・モーダル実装など、実務で必要な UI/UX を深く理解したい方に最適な講座です。
標準ダイアログの弱点を踏まえたうえで、モーダル・トースト通知の実装方法 も学べます。

この講座で解決できること:

  • 標準ダイアログの代替UIを実装するスキルが身につく
  • ユーザー体験を損なわない UI 設計の考え方を習得できる
  • 現代的な JavaScript の UI 実装をまとめて学べる

超JavaScript 完全ガイド 2026(Udemy)

体系的に学びたい方へ(スクールという選択肢)

独学の限界を感じやすいポイント

  • alertconfirmprompt が嫌われる理由が曖昧なままになる
  • UX を意識した UI 設計が独学だと身につきにくい
  • モーダルやトースト通知など代替UIの実装でつまずきやすい
  • 学習の順番に自信が持てない

スクールでは、プロの講師が学習ロードマップを作成し、
標準ダイアログの問題点から代替UIの実装まで、
UI/UX を意識した JavaScript の基礎 を体系的に学べます。

無料相談で得られるメリット

  • あなたのレベルに合わせた UI/UX 学習計画を作成
  • モーダル・トースト通知などの実装方法を相談できる
  • 効率的な学習方法をプロが提案
  • エンジニア転職を視野に入れたキャリア相談も可能

JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。

DMM WEBCAMP 学習コース(無料相談はこちら)



ダイアログのUI/UXに関するよくある質問(FAQ)

Q1

alert は実務で使わない方がいいですか?

A

必ずしも禁止ではありませんが、UX を損なうため、実務ではモーダルやトースト通知が使われることが多いです。

Q2

confirm は実務でも使われますか?

A

はい、削除確認など「取り消しが難しい操作」の前では今でも使われることがあります。

Q3

prompt が実務で使われない理由は何ですか?

A

入力チェックが必要で UI も古いため、フォームやモーダルの方が適切だからです。

Q4

標準ダイアログの代わりに何を使えばいいですか?

A

通知にはトースト、確認にはモーダル、入力にはフォームなど、用途に応じたUIを使うのが一般的です。



まとめ

alertconfirmprompt は便利な反面、
UX を損ないやすい・デザインできない・挙動が不安定 という理由から、
実務では避けられることが多い UI です。

ただし、学習段階では理解しておくべき重要な機能なので、
まずは特徴を押さえた上で、必要に応じてモーダルなどの代替UIを使う判断ができるようになりましょう。



関連記事

【JavaScript入門】prompt()の使い方を初心者向けに解説|入力ダイアログの基本と実用例

この記事で分かること prompt() の基本的な意味 入力ダイアログの構文と戻り値(OK / キャンセル) 名前入力・パスワード入力などの実用例 alert()・confirm() との違い スマホ …

【JavaScript入門】alert・confirm・promptの違いを初心者向けに解説|使い分け・戻り値・注意点

この記事で分かること alert・confirm・prompt の役割と違い それぞれの戻り値と使いどころ 初心者がつまずきやすい注意点 実務での適切な使い分け方 alert・confirm・prom …

【JavaScript入門】alertの使い方|基本動作・改行方法・onclickとの組み合わせを初心者向けに解説

この記事で分かること alert() の基本動作 警告ダイアログの表示方法 改行(\n)を使ったメッセージ整形 リンクやボタンの onclick と組み合わせる方法 初心者がつまずきやすいポイント a …

【JavaScript入門】ダイアログの実務での使いどころまとめ|alert・confirm・promptの活用パターンを初心者向けに解説

この記事で分かること alert・confirm・prompt の実務での使いどころ 削除確認・エラー通知などの実践パターン 初心者がやりがちなNGパターン 実務でダイアログを使う際の注意点 Java …

【JavaScript入門】confirmの使い方|OK・キャンセルの戻り値と実例を初心者向けに解説

この記事で分かること confirm() の基本動作 OK / キャンセルの戻り値(true / false) ページ遷移・削除確認などの実用例 alert()・prompt() との違い 初心者がつ …

このブログは Xserver 上の WordPress で運用しています。
表示速度が速く、安定しているのでブログ初心者にもおすすめです。

レンタルサーバー エックスサーバー

-Dialog(ダイアログ表示)

執筆者: