入力内容確認モーダルウインドウの作り方【HTML/CSS/JavaScript・サンプルコード付き】

モーダルウインドウ

入力内容確認モーダルウインドウの作り方

入力内容確認モーダルウインドウをHTML・CSS・JavaScriptで作る方法を紹介します。フォームへ入力した内容を送信前にモーダルウインドウへ表示し、「送信する」と「戻る」を選択できるサンプルです。入力ミスを防ぎたいお問い合わせフォームや会員登録フォームなどで利用できます。

このサンプルでは、入力内容をモーダルウインドウへ表示し、送信前に内容を確認できる機能を実装しています。「戻る」を押すと入力画面へ戻り、「送信する」を押くと送信処理へ進める構成です。実際の送信処理は含まれていないため、画面遷移なしで動作を確認できます。

PHPと組み合わせる場合は、「送信する」ボタンからフォームを送信するだけで利用できます。入力内容の確認はJavaScriptで行い、実際の登録処理やメール送信、データベース保存などはPHP側で実装してください。HTML・CSS・JavaScriptの構成はそのまま利用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

入力内容確認モーダル

フォームへ入力した内容を、送信前にモーダルウインドウで確認できます。

入力例
name="山田 太郎"; email="sample@example.com"; message="資料について詳しく知りたいです。";

入力例はフォームへあらかじめ設定されています。「フォームを表示」をクリックし、「確認画面へ」を押すと入力内容を確認できます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン表示対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>入力内容確認モーダルウインドウ</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!--
  ==================================================
  このサンプルについて
  ==================================================

  このサンプルはHTML・CSS・JavaScriptのみで動作し、
  フォームへ入力した内容をモーダルウインドウ内で確認できます。

  PHPと組み合わせる場合

  ・form要素のaction属性へ送信先PHPを指定してください。
  ・method属性をpostへ変更してください。
  ・name属性はPHPで受け取る項目名として利用できます。

  例

  action="contact.php"
  method="post"

  入力内容確認後の送信処理や入力チェックなどは、
  PHP側で実装してください。

  ==================================================
  -->

  <!-- 入力内容確認モーダルを開く操作エリア -->
  <div class="confirm-input-modal_wrap">

    <!-- 操作エリアのタイトル -->
    <div class="confirm-input-modal_title">
      入力内容確認モーダル
    </div>

    <!-- 操作エリアの説明文 -->
    <p class="confirm-input-modal_text">
      フォームへ入力した内容を、送信前にモーダルウインドウで確認できます。
    </p>

    <!-- モーダルを開くボタン -->
    <button
      class="confirm-input-modal_open"
      type="button"
      data-confirm-input-modal-open>
      フォームを表示
    </button>

  </div>

  <!-- モーダル背景 -->
  <div
    class="confirm-input-modal_overlay"
    data-confirm-input-modal-overlay>

    <!-- モーダル本体 -->
    <div
      class="confirm-input-modal_modal"
      role="dialog"
      aria-modal="true"
      aria-labelledby="confirm-input-modal-title">

      <!-- モーダルを閉じるボタン -->
      <button
        class="confirm-input-modal_close"
        type="button"
        data-confirm-input-modal-close
        aria-label="閉じる">
        ×
      </button>

      <!-- 入力フォーム -->
      <form
        class="confirm-input-modal_form"
        action="#"
        method="get"
        data-confirm-input-modal-form-area>

        <!-- 入力フォームのタイトル -->
        <div
          class="confirm-input-modal_confirm-title"
          id="confirm-input-modal-title">
          入力フォーム
        </div>

        <!-- お名前入力欄 -->
        <label class="confirm-input-modal_label">
          お名前

          <input
            class="confirm-input-modal_input"
            type="text"
            name="name"
            value="山田 太郎"
            required
            data-confirm-input-modal-name>

        </label>

        <!-- メールアドレス入力欄 -->
        <label class="confirm-input-modal_label">
          メールアドレス

          <input
            class="confirm-input-modal_input"
            type="email"
            name="email"
            value="sample@example.com"
            required
            data-confirm-input-modal-email>

        </label>

        <!-- お問い合わせ内容入力欄 -->
        <label class="confirm-input-modal_label">
          お問い合わせ内容

          <textarea
            class="confirm-input-modal_textarea"
            name="message"
            required
            data-confirm-input-modal-message>資料について詳しく知りたいです。</textarea>

        </label>

        <!-- 確認画面へ進むボタン -->
        <button
          class="confirm-input-modal_submit"
          type="button"
          data-confirm-input-modal-show>
          確認画面へ
        </button>

      </form>

      <!-- 入力内容確認エリア -->
      <div
        class="confirm-input-modal_confirm"
        data-confirm-input-modal-confirm-area>

        <!-- 確認画面のタイトル -->
        <div class="confirm-input-modal_confirm-title">
          入力内容確認
        </div>

        <!-- お名前の確認項目 -->
        <p class="confirm-input-modal_confirm-item">

          <span class="confirm-input-modal_confirm-label">
            お名前
          </span>

          <span data-confirm-input-modal-view-name></span>

        </p>

        <!-- メールアドレスの確認項目 -->
        <p class="confirm-input-modal_confirm-item">

          <span class="confirm-input-modal_confirm-label">
            メールアドレス
          </span>

          <span data-confirm-input-modal-view-email></span>

        </p>

        <!-- お問い合わせ内容の確認項目 -->
        <p class="confirm-input-modal_confirm-item">

          <span class="confirm-input-modal_confirm-label">
            お問い合わせ内容
          </span>

          <span data-confirm-input-modal-view-message></span>

        </p>

        <!-- 確認画面の操作ボタン -->
        <div class="confirm-input-modal_buttons">

          <!-- 入力画面へ戻るボタン -->
          <button
            class="confirm-input-modal_back"
            type="button"
            data-confirm-input-modal-back>
            戻る
          </button>

          <!-- 送信ボタン -->
          <button
            class="confirm-input-modal_send"
            type="button"
            data-confirm-input-modal-send>
            送信する
          </button>

        </div>

        <!-- デモ用の送信結果メッセージ -->
        <p
          class="confirm-input-modal_notice"
          data-confirm-input-modal-notice
          role="status">
          デモのため、入力内容は送信されません。
        </p>

      </div>

    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLには入力フォームと入力内容確認モーダルウインドウの構造、CSSにはフォーム・確認画面・ボタン・モーダル全体のデザイン、JavaScriptにはモーダルの開閉、入力内容の反映、入力画面へ戻る処理、デモ用メッセージの表示処理を記述しています。

フォームにはお名前・メールアドレス・お問い合わせ内容の入力欄があり、「確認画面へ」をクリックすると、入力した内容がモーダル内の確認画面へ表示されます。「戻る」をクリックすると入力画面へ戻り、「送信する」をクリックするとデモ用メッセージが表示されます。現在のコードには実際の送信処理は含まれていません。

PHPと組み合わせる場合は、index.htmlのform要素に送信先PHPを指定し、method属性をpostへ変更します。name=”name”、name=”email”、name=”message”はPHP側で受け取る項目名として利用できます。入力内容確認後の送信処理や入力チェックは、送信先PHPで別途実装してください。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.html
入力例、入力フォーム、入力内容確認画面、戻るボタン、送信ボタン、閉じるボタンを配置します。入力例や初期値、ラベル、ボタン名を変更できます。PHPと組み合わせる場合は、form要素のaction属性へ送信先PHPを指定し、method属性をpostへ変更します。

style.css
モーダルウインドウ、入力フォーム、入力例、確認項目、戻るボタン、送信ボタン、デモ用メッセージなどのデザインを管理します。色、横幅、高さ、余白、角丸、影、文字サイズ、ボタン配置を変更できます。

script.js
モーダルを開く処理、閉じる処理、背景クリックで閉じる処理、入力内容を確認画面へ反映する処理、入力画面へ戻る処理、デモ用送信結果メッセージを表示する処理を管理します。実際の送信処理は行いません。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置し、sample/index.htmlをブラウザで開きます。「フォームを表示」をクリックすると入力フォームが開きます。入力内容を変更して「確認画面へ」をクリックすると、入力した内容が確認画面へ表示されます。

「戻る」をクリックすると入力内容を保持したまま入力画面へ戻ります。「送信する」をクリックすると、実際には送信せず、デモ用メッセージだけを表示します。

PHPと組み合わせる場合は、index.htmlのform要素を次のように変更します。

action=”#”
method=”get”

を、

action=”contact.php”
method=”post”

へ変更します。送信先のcontact.phpでは、name・email・messageを受け取り、入力内容確認後の送信処理や入力チェックを実装してください。

カスタマイズできる内容
index.htmlでは入力例、初期入力値、項目名、ボタン名、送信先PHPを変更できます。style.cssではモーダルの横幅、入力欄の高さ、入力例のデザイン、確認項目の背景色、ボタン色、余白、角丸、影を変更できます。script.jsでは確認画面へ表示する項目や、戻る・送信ボタンの動作を変更できます。

数値調整
style.cssのmax-width:500px;を変更するとモーダルの最大横幅が変わります。padding:48px 28px 28px;を変更するとモーダル内部の余白が変わります。gap:16px;を変更するとフォーム項目同士の間隔が変わります。min-height:120px;を変更するとお問い合わせ内容入力欄の高さが変わります。width:36px;とheight:36px;を変更すると閉じるボタンの大きさが変わります。

レスポンシブ対応
style.cssではwidth:100%、max-width、max-height:90vh、overflow-y:auto、padding、@media (max-width:640px)を使用してレスポンシブ対応しています。スマートフォンではモーダル内部の余白が縮小され、戻るボタンと送信ボタンが縦並びになります。タブレットやPCでは最大横幅を保ったまま中央へ表示されます。



コメント