入力内容をチェックしてエラーを表示するテキストボックスを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

テキストボックス

入力内容をチェックしてエラーを表示するテキストボックスを作る方法

入力内容をJavaScriptでチェックし、未入力の場合にエラーメッセージを表示するテキストボックスを作る方法を紹介します。「確認する」ボタンをクリックすると入力欄の内容を判定し、何も入力されていない場合は枠線と背景色を赤色へ変更して、「お名前を入力してください。」という案内を表示します。

エラーがある入力欄を視覚的に強調できるため、ユーザーが修正すべき場所をすぐに確認できます。お問い合わせ画面、会員登録画面、ECサイトの注文者情報、会員サイトのプロフィール編集、管理画面の入力フォームなど、入力漏れを防ぎたい場面で利用できます。正しく文字が入力されている場合は、表示中のエラー状態を解除します。

サンプルはHTML・CSS・JavaScriptの3ファイルで構成し、外部ライブラリを使用せずに動作します。HTMLではラベルや入力欄、エラーメッセージを変更でき、CSSではエラー時の枠線色・背景色・文字色・余白・角丸を調整できます。JavaScriptでは未入力を判定する条件を確認でき、スマートフォン・タブレット・PCでも利用しやすいレイアウトです。

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

デモ

お客様情報を入力

名前・電話番号・メールアドレスを入力し、「入力内容を確認」を押してください。

名前は未入力、電話番号は0から始まる10桁または11桁以外、メールアドレスは形式が正しくない場合にエラーを表示します。入力内容を修正するとエラー表示は解除されます。

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

<!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>

  <!-- 全体エリア -->
  <div class="textbox-validation-error_wrap">

    <!-- タイトル -->
    <div class="textbox-validation-error_title">
      入力内容チェック
    </div>

    <!-- 説明文 -->
    <p class="textbox-validation-error_text">
      名前・電話番号・メールアドレスを入力し、「入力内容を確認」を押してください。
    </p>

    <!-- 入力フォーム -->
    <div class="textbox-validation-error_fields">

      <!-- 名前 -->
      <div
        class="textbox-validation-error_group"
        id="name-group">

        <label
          class="textbox-validation-error_label"
          for="name">
          お名前
        </label>

        <input
          class="textbox-validation-error_input"
          id="name"
          type="text"
          placeholder="例:山田 太郎">

        <p
          class="textbox-validation-error_message"
          id="name-message">
        </p>

      </div>

      <!-- 電話番号 -->
      <div
        class="textbox-validation-error_group"
        id="tel-group">

        <label
          class="textbox-validation-error_label"
          for="tel">
          電話番号
        </label>

        <input
          class="textbox-validation-error_input"
          id="tel"
          type="tel"
          placeholder="例:090-1234-5678">

        <p
          class="textbox-validation-error_message"
          id="tel-message">
        </p>

      </div>

      <!-- メールアドレス -->
      <div
        class="textbox-validation-error_group"
        id="email-group">

        <label
          class="textbox-validation-error_label"
          for="email">
          メールアドレス
        </label>

        <input
          class="textbox-validation-error_input"
          id="email"
          type="email"
          placeholder="例:sample@example.com">

        <p
          class="textbox-validation-error_message"
          id="email-message">
        </p>

      </div>

    </div>

    <!-- 確認ボタン -->
    <button
      class="textbox-validation-error_button"
      type="button"
      id="check-button">
      入力内容を確認
    </button>

  </div>

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

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLで名前・電話番号・メールアドレスの入力欄と確認ボタンを配置し、CSSで通常時とエラー時のデザインを設定します。JavaScriptでは各入力内容を判定し、条件に合わない場合にエラーメッセージを表示します。

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

各ファイルの役割
index.htmlは入力フォームの構造を作成するファイルです。名前・電話番号・メールアドレスのラベル、入力欄、プレースホルダー、エラーメッセージの表示位置、確認ボタンの文字を編集できます。

style.cssは入力フォームの見た目を設定するファイルです。入力欄の横幅、余白、枠線、角丸、文字サイズ、ボタンの色、エラー時の赤い枠線や背景色を変更できます。

script.jsは入力内容を判定するファイルです。名前は未入力かどうか、電話番号は0から始まる10桁または11桁かどうか、メールアドレスは指定した形式に一致しているかを確認します。

設置方法・使い方
sampleフォルダ内へindex.html・style.css・script.jsを配置します。sample/index.htmlをブラウザで開き、名前・電話番号・メールアドレスを入力して「入力内容を確認」ボタンを押します。入力内容に問題がある項目だけ赤色で強調され、入力欄の下へエラーメッセージが表示されます。内容を修正すると入力中に再判定され、正しい状態になった項目のエラー表示が解除されます。

カスタマイズできる内容
index.htmlでは入力項目名、プレースホルダー、確認ボタンの文字を変更できます。style.cssでは通常時とエラー時の枠線色、背景色、文字色、入力欄の高さ、余白、角丸、ボタンサイズを変更できます。script.jsでは各エラーメッセージと電話番号・メールアドレスの判定条件を変更できます。

数値調整
style.css
max-width:760px;
フォーム全体の最大横幅です。900pxへ変更すると横に広くなり、600pxへ変更するとコンパクトになります。

padding:40px;
フォーム全体の内側余白です。60pxへ変更すると内容と外枠の間隔が広くなり、24pxへ変更すると狭くなります。

gap:22px;
名前・電話番号・メールアドレスの入力項目同士の間隔です。32pxへ変更すると広くなり、14pxへ変更すると詰まって表示されます。

padding:14px 16px;
入力欄の上下・左右の内側余白です。18px 20pxへ変更すると入力欄が高くなり、10px 12pxへ変更すると低くなります。

border:2px solid #cbd5e1;
入力欄の通常時の枠線です。2px3pxへ変更すると枠線が太くなり、1pxへ変更すると細くなります。

border-radius:10px;
入力欄の角丸です。20pxへ変更すると丸みが強くなり、0へ変更すると四角くなります。

font-size:16px;
入力文字の大きさです。18pxへ変更すると大きくなり、14pxへ変更すると小さくなります。

box-shadow:0 0 0 4px rgba(220,38,38,0.12);
エラー時に入力欄の外側へ表示する赤い強調範囲です。4px6pxへ変更すると広がり、2pxへ変更すると控えめになります。

transition:border-color 0.3s ease;
枠線色が切り替わる時間です。0.6sへ変更するとゆっくり変化し、0.1sへ変更すると素早く変化します。背景色と影にも同じ0.3sが設定されているため、3か所を同じ値へ変更します。

min-width:160px;
確認ボタンの最低横幅です。220pxへ変更すると広くなり、120pxへ変更すると狭くなります。

min-height:48px;
確認ボタンの最低高さです。56pxへ変更すると高くなり、40pxへ変更すると低くなります。

script.js
const phonePattern=/^0\d{9,10}$/;
電話番号の桁数を判定する部分です。{9,10}は、先頭の0を除いて9桁または10桁を許可するため、電話番号全体では10桁または11桁になります。

const emailPattern=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;
メールアドレス形式を判定する部分です。数値調整を行う箇所ではないため、形式を変更する必要がない場合はそのまま使用します。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:760pxによって画面幅に合わせて縮小します。画面幅が640px以下になると、フォーム全体の余白を24px 18px、入力欄の余白を13px 14pxへ縮小し、確認ボタンをwidth:100%で横幅いっぱいに表示します。スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント