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講座 / テキストの意味を表すem・strong・引用・コード

HTML講座 / テキストの意味を表すem・strong・引用・コード

emとstrong、qとblockquote、abbr、code、kbdの違いを学びます。太字や斜体という見た目ではなく、文章中の役割に合わせて要素を選ぶ方法を説明します。

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

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

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

HTML講座 / formの構造とGET・POSTによる送信

HTML講座 / formの構造とGET・POSTによる送信

action、method、nameの役割とGET・POSTの違いを学びます。FormDataと開発者ツールを使い、送信対象の値、入力検証、サーバー処理を分けて確認します。

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

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

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

HTML講座 / required・文字数・範囲で入力値を検証する

HTML講座 / required・文字数・範囲で入力値を検証する

必須入力、文字数、数値の範囲と刻み、メール形式の制約を学びます。境界値を試し、ブラウザーの案内とサーバー側の検証を分けて考える方法も説明します。

HTML講座 / HTMLアクセシビリティの基本を確認する

HTML講座 / HTMLアクセシビリティの基本を確認する

見出し、リンク、画像、フォームを意味のあるHTMLで作る方法を学びます。スキップリンク、キーボード、フォーカス、ズームを確認する小さなページと、検査の限界も紹介します。

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTMLで文書の意味と構造を表す方法を、CSS・JavaScriptとの違いとともに学びます。実際にHTMLファイルを保存して、ブラウザーで確認する手順も紹介します。

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

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

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

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

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

email、number、date、checkbox、radioの使い分けを学びます。見える入力UIと送信値、初期値と現在値の違いを、フォームデータの確認とともに説明します。

HTML講座 / caption・scope・セル結合で読みやすい表を作る

HTML講座 / caption・scope・セル結合で読みやすい表を作る

表の題名、列見出しと行見出し、colspanとrowspanの関係を学びます。色や位置だけに依存せず、一つの値に対応する見出しを判断できる表を目指します。