HTML講座 / メール・数値・日付・選択肢に合うinputの型

inputはtypeで入力する情報の種類を指定します。メールにはemail、数量にはnumber、日付にはdateを使い、複数の独立した選択にはcheckbox、一つだけ選ぶ組にはradioを使います。型だけで業務上の条件や安全性が保証されるわけではありません。

値の意味に合う型を選ぶ

次の例をHTML文書のbodyへ入れ、各欄の表示と操作を比較します。数値の範囲はmin・max、刻みはstepなどで指定します。

<form method="get">
  <p><label for="email">Email</label>
     <input id="email" name="email" type="email"></p>
  <p><label for="quantity">Quantity</label>
     <input id="quantity" name="quantity" type="number" min="1"></p>
  <p><label for="visit-date">Visit date</label>
     <input id="visit-date" name="date" type="date"></p>
  <button type="submit">Check</button>
</form>

数値計算をしない郵便番号や識別番号は、先頭のゼロなどを保持するためtextが適切な場合があります。日付の見えるUIや表示順はブラウザーや地域設定で異なっても、dateの値は通常yyyy-mm-dd形式です。emailは基本的な書式の確認で、実在や所有を確認するものではありません。MDNのdate入力で表示と値の違いを確認できます。

チェックボックスとラジオボタン

独立した可否や複数選択にはチェックボックスを使います。ラジオボタンは同じnameを持つものが一組になり、その中から一つを選びます。

<fieldset>
  <legend>Updates</legend>
  <label><input type="checkbox" name="news" value="yes"> Receive news</label>
</fieldset>
<fieldset>
  <legend>Preferred contact method</legend>
  <label><input type="radio" name="contact" value="email"> Email</label>
  <label><input type="radio" name="contact" value="phone"> Phone</label>
</fieldset>

valueは選択時に送る値です。未選択のチェックボックスやラジオボタンは通常送信されません。複数のラジオグループに同じnameを付けると、意図せず一つの組になります。まとまりを説明するfieldsetとlegendはフォームのグループ化で扱います。

UIと現在の送信値を比較する

次の完全なコードをvisit-form.htmlとして保存します。各入力を変えた後、開発者ツールのConsoleでフォームデータを確認します。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Visit input-types practice</title>
</head>
<body>
  <h1>Practice a visit request</h1>
  <form id="visit-form" method="get">
    <p><label for="visit-email">Email</label>
      <input id="visit-email" name="email" type="email" required></p>
    <p><label for="visit-day">Visit date</label>
      <input id="visit-day" name="date" type="date" required></p>
    <p><label for="visit-quantity">Quantity</label>
      <input id="visit-quantity" name="quantity" type="number" min="1" step="1" value="1"></p>
    <fieldset>
      <legend>Contact method</legend>
      <label><input type="radio" name="contact" value="email" required> Email</label>
      <label><input type="radio" name="contact" value="phone"> Phone</label>
    </fieldset>
    <p><label><input type="checkbox" name="news" value="yes"> News</label></p>
    <button type="submit">Inspect entered values</button>
  </form>
</body>
</html>
Array.from(new FormData(document.getElementById("visit-form")).entries())

日付を選び、画面の表示形式と送信値を比較します。チェックを付けたり外したりし、一覧へ現れる項目を確認します。入力欄に書いた属性の初期値と、利用者が操作した現在値は別です。比較後はフォームを再読み込みして初期状態へ戻せます。実在の連絡先ではなくテスト値を使い、送信先が受信処理を持つかどうかも区別してください。

型以外の条件も確認する

欄の名前、必須かどうか、文字数や数値範囲、エラー時の案内まで合わせて設計します。型によっては特定の属性が適用されないため、一律に付けるだけで済ませません。画面上の検証は回避できるので、サーバー側でも検証が必要です。制約と境界値は入力検証、各型の条件はMDNのinput要素で確認できます。

같은 카테고리의 다른 글
HTML講座 / fieldset・legend・autocompleteでフォームを説明する

HTML講座 / fieldset・legend・autocompleteでフォームを説明する

関連する入力をfieldsetでまとめ、legendで質問を示す方法を学びます。ラジオグループを独立させるnameと、自動入力の目的を示すautocompleteの違いも解説します。

HTML講座 / HTML文書の基本構造

HTML講座 / HTML文書の基本構造

doctype、html、head、bodyの役割と、文字コード・文書タイトル・viewportの設定を解説します。ファイルの保存から表示確認、表示されない場合の調べ方まで学べます。

HTML講座 / ol・ul・dlと入れ子のリスト

HTML講座 / ol・ul・dlと入れ子のリスト

順序付きリスト、箇条書き、用語と説明のリストを使い分けます。番号の開始位置や逆順表示、リスト項目の中にサブリストを置く正しい構造も学びます。

HTML講座 / リンクの作成、相対パスとページ内移動

HTML講座 / リンクの作成、相対パスとページ内移動

aとhrefによるリンク、絶対URLと相対URL、ページ内の移動を学びます。新しいタブ、メール、ダウンロードの条件と、三つのファイルでパスを確認する実習も紹介します。

HTML講座 / detailsとsummaryで開閉できる説明を作る

HTML講座 / detailsとsummaryで開閉できる説明を作る

JavaScriptなしで開閉する補足説明を作ります。open属性の真偽、分かりやすいsummaryの書き方、Tab・Enter・Spaceによる操作の確認方法も紹介します。

HTML講座 / table・tr・th・tdで表を作る

HTML講座 / table・tr・th・tdで表を作る

行と列を持つデータをHTMLの表で表す基本を学びます。見出しセルとデータセル、theadとtbody、横幅が広い表のスクロール方法も紹介します。

HTML講座 / audio・video・iframeでメディアを埋め込む

HTML講座 / audio・video・iframeでメディアを埋め込む

音声、動画、外部文書の埋め込みを学びます。字幕ファイル、代替リンク、画面幅への対応と、ファイル形式や提供元の制限による読み込み失敗の確認方法も説明します。

HTML講座 / 見出しと段落を正しく使う

HTML講座 / 見出しと段落を正しく使う

h1〜h6で見出しの階層を表し、pで段落、brで段落内の改行を作る方法を学びます。文字サイズと文書構造を区別し、見出しの飛び級を修正する練習も行います。

HTML講座 / 要素・タグ・属性とHTMLの基本文法

HTML講座 / 要素・タグ・属性とHTMLの基本文法

開始タグと終了タグ、空要素、属性、入れ子、コメントの書き方を学びます。真偽属性や特殊文字の注意点と、ブラウザー表示だけでは判断できない文法エラーも説明します。

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

同じ構図の解像度選択と、画面幅に応じた構図変更を区別して学びます。w記述子、ピクセル密度、currentSrcによる確認方法と、キャッシュが比較に与える影響も解説します。