AI先生のロボットキャラクター
第4章 - セクション3

さまざまな入力タイプ

text、email、password、numberなど目的に応じた入力タイプの選択

男子生徒のアイコン

前回、基本的なフォームを作りましたが、テキスト入力だけじゃ物足りないです。メールアドレスや電話番号、パスワードなど、用途に応じた入力欄を作りたいです!

AI先生のアイコン

その通り!前回はtype="text"だけを使ったけど、実際のWebサイトではもっと多彩な入力タイプが使われているね。ユーザーが使いやすくて、間違いにくい入力フォームを作るコツを学んでみよう。

入力タイプの種類と特徴

HTML5では、ユーザーが入力する情報の種類に応じて、最適化された様々な入力タイプが用意されています。適切な入力タイプを選択することで、ユーザーの入力体験が向上し、データの品質も確保できます。

HTML5 入力タイプの分類
<input type="入力タイプ">
テキスト系
text - 基本テキスト
email - メールアドレス
password - パスワード
tel - 電話番号
url - URL
数値系
number - 数値入力
range - スライダー
日付・時間系
date - 日付選択
time - 時刻選択
datetime-local - 日時選択
選択系
radio - 単一選択
checkbox - 複数選択
file - ファイル選択

HTML5の入力タイプは、大きく4つのカテゴリーに分類できます:

  • テキスト系 文字列の入力に使用。メールアドレスやURL、電話番号など、用途に応じた専用バリデーションが適用されます
  • 数値系 数値の入力や範囲選択に特化。スピンボタンやスライダーによる直感的な操作が可能です
  • 日付・時間系 カレンダーピッカーや時刻選択ツールがブラウザによって自動提供され、正確な日時入力をサポートします
  • 選択系 ラジオボタンやチェックボックス、ファイル選択など、選択肢から選ぶ形式の入力を担当します

これらの入力タイプを適切に使い分けることで、ユーザーは迷うことなく情報を入力でき、開発者はデータの品質を確保できるようになります。

基本的な入力タイプ

実際にWebサイトでよく使われる入力タイプを、カテゴリー別に詳しく見ていきましょう。それぞれの特徴と使いどころを理解することで、ユーザーにとって使いやすいフォームを作ることができます。

テキスト系入力

テキスト系の入力タイプは、文字列を入力する場面で使用されます。用途に応じて専用のバリデーション機能が提供され、モバイルデバイスでは最適なキーボードが自動表示されます。

テキスト系入力タイプの基本構文
<!-- 基本的なテキスト入力 -->
<input type="text" name="username" placeholder="山田太郎">

<!-- メールアドレス入力 -->
<input type="email" name="email" placeholder="example@example.com">

<!-- パスワード入力 -->
<input type="password" name="password" placeholder="パスワード">

<!-- 電話番号入力 -->
<input type="tel" name="phone" placeholder="090-1234-5678">

<!-- URL入力 -->
<input type="url" name="website" placeholder="https://example.com">
プレビュー:
type属性用途特徴
text基本的なテキスト入力名前やコメントなど、自由な文字列を受け付けます
emailメールアドレス専用@マークの有無など、基本的な形式をブラウザが自動チェックします
passwordパスワード専用入力した文字が●で隠されて表示されます
tel電話番号専用モバイルデバイスで数字キーパッドが表示されます
urlURL専用http://https://から始まる形式をブラウザが検証します

数値系入力

数値系の入力タイプは、数字の入力や範囲選択に特化しています。スピンボタンやスライダーによる直感的な操作が可能で、最小値・最大値・ステップ値を設定できます。

数値系入力タイプの基本構文
<!-- 数値入力(年齢 0〜120歳) -->
<input type="number" name="age" min="0" max="120" placeholder="25">

<!-- 範囲スライダー -->
<input type="range" name="volume" min="0" max="100" value="50">

<!-- ステップ指定の数値入力(価格 (円)) -->
<input type="number" name="price" min="0" step="0.01" placeholder="1234.56">
プレビュー:
type属性用途特徴
number数値専用入力スピンボタン(上下矢印)が表示され、キーボードで数字以外の入力を制限します
rangeスライダー形式視覚的に値を選択でき、設定画面や音量調整などに適しています

その他の属性(typeとは別に指定する属性)

属性用途説明
min / max入力範囲の制限入力可能な最小値・最大値を指定し、範囲外の値はブラウザや検証で弾かれます
step増減単位の指定増減の刻みを指定(例: 0.01で小数点以下2桁、10で10単位)

日付・時間系入力

日付・時間系の入力タイプでは、カレンダーピッカーや時刻選択ツールがブラウザによって自動的に提供されます。正確な日時入力をサポートし、フォーマットエラーを防ぎます。

日付・時間系入力タイプの基本構文
<!-- 日付選択 -->
<input type="date" name="birthday" min="1900-01-01" max="2025-12-31">

<!-- 時刻選択 -->
<input type="time" name="meeting-time" min="09:00" max="18:00">

<!-- 日時選択 -->
<input type="datetime-local" name="appointment">

<!-- 月選択 -->
<input type="month" name="start-month">

<!-- 週選択 -->
<input type="week" name="vacation-week">
プレビュー:
type属性用途特徴
date日付専用カレンダーから選択でき、YYYY-MM-DD形式で値が管理されます
time時刻専用時:分の形式で入力でき、24時間表記での管理が可能です
datetime-local日時同時選択予約システムやスケジュール管理に最適です
month月単位の選択年月のみが必要な場合に使用し、YYYY-MM形式で管理されます
week週単位の選択年と週番号で管理され、プロジェクト管理などに活用できます

選択系入力

選択系の入力タイプは、予め用意された選択肢から選ぶ形式の入力を担当します。単一選択、複数選択、ファイル選択など、目的に応じて適切なタイプを選択できます。

選択系入力タイプの基本構文
<!-- ラジオボタン(単一選択) -->
<input type="radio" name="gender" value="male" id="male">
<label for="male">男性</label>
<input type="radio" name="gender" value="female" id="female">
<label for="female">女性</label>

<!-- チェックボックス(複数選択) -->
<input type="checkbox" name="hobby" value="reading" id="reading">
<label for="reading">読書</label>
<input type="checkbox" name="hobby" value="sports" id="sports">
<label for="sports">スポーツ</label>
<input type="checkbox" name="hobby" value="music" id="music">
<label for="music">音楽</label>

<!-- ファイル選択 -->
<input type="file" name="image" accept="image/*">
プレビュー:
type属性用途特徴
radio単一選択専用同じname属性のものから1つだけ選択できます
checkbox複数選択可能独立した項目のオン・オフ切り替えに使用します
fileファイル選択専用accept属性でファイル形式を制限できます

label要素

要素用途特徴
label要素関連付けラジオボタンやチェックボックスと関連付けし、クリック範囲を拡大します
file要素の便利な属性
  • accept属性 ファイル形式の制限 file要素でアップロード可能なファイル形式を指定します(例: image/*, .pdf
  • multiple属性 複数ファイル選択 file要素で複数ファイルの同時選択を可能にします
男子生徒のアイコン

フォームを作るときに、スマホやタブレットでも使いやすくするにはどうしたらいいですか?目の不自由な方にも配慮したいです。

AI先生のアイコン

素晴らしい視点だね!モバイルデバイスでは適切なキーボードが表示されるように、そしてスクリーンリーダーなどの支援技術でも正しく読み上げられるように工夫する必要があるんだ。

入力タイプに応じたモバイルキーボードの最適化

スマートフォンやタブレットでは、入力タイプに応じて自動的に最適なキーボードが表示されます。これにより、ユーザーの入力効率が大幅に向上します。

適切なtype属性を指定するだけで、ブラウザが自動的に最適なキーボードを表示してくれるため、特別なJavaScriptやCSSは必要ありません。

type=“tel” - 数字キーパッドの表示

電話番号入力では、数字キーパッドが表示されます。

type='tel'のモバイルキーボード表示例

type属性

<input type="tel">

モバイルでの表示

  • 入力フィールドをタップすると数字キーパッドが自動表示
  • 文字キーボードへの切り替え不要で入力効率が向上
  • 電話番号入力に最適化されたレイアウト

type=“email” - メール専用キーボード

メールアドレス入力では、@キーが配置されたキーボードが表示されます。

type='email'のモバイルキーボード表示例

type属性

<input type="email">

モバイルでの表示

  • 通常のキーボードに@キーが追加配置
  • メールアドレス形式の自動バリデーション
  • ドメイン入力時の効率化(.com等の候補表示)

type=“password” - パスワード専用入力

パスワード入力では、数字や記号が入力しやすいキーボードが表示されます。

type='password'のモバイルキーボード表示例

type属性

<input type="password">

モバイルでの表示

  • 英数字キーボードが自動表示され、記号入力も効率的
  • 入力した文字は●(ドット)で隠されてセキュリティを確保
  • パスワード用の特殊文字(!@#$など)にもアクセスしやすい配置

type=“search” - 検索専用キーボード

検索入力では、検索ボタンが表示されます。

type='search'のモバイルキーボード表示例

type属性

<input type="search">

モバイルでの表示

  • キーボードに「検索」ボタンが表示
  • 入力後すぐに検索アクションを実行可能
  • 検索フォームでの操作性が向上
  • type=“tel” 数字キーパッドで電話番号入力が快適になります
  • type=“email” @キー付きでメールアドレス入力が効率的になります
  • type=“password” 記号入力がしやすく、セキュリティも確保されます
  • type=“search” 検索ボタンで検索操作が直感的になります
  • 自動最適化 HTMLの属性だけで、プラットフォームに応じたキーボードが表示されます

理解度チェッククイズ

AI先生のアイコン

さまざまな入力タイプについて学びましたが、理解できたかクイズで確認してみましょう!

入力タイプ活用ミニクイズ

次のHTMLコードで、メールアドレス入力に最適な入力タイプはどれですか?
<input type="①" name="email" placeholder="example@example.com">
text
email
mail
address
パスワード入力フィールドの特徴として正しいものはどれですか?
入力した文字がそのまま表示される
入力した文字が●や*で隠されて表示される
数値のみ入力可能になる
自動的に暗号化される
次のコードで、年齢入力に最適な入力タイプはどれですか?
<input type="①" name="age" min="0" max="120">
text
number
age
integer
ラジオボタンとチェックボックスの違いについて正しい説明はどれですか?
ラジオボタンは複数選択可、チェックボックスは単一選択のみ
ラジオボタンは単一選択のみ、チェックボックスは複数選択可
両方とも複数選択が可能
両方とも単一選択のみ
次のコードの①と②に入る入力タイプの組み合わせで正しいものはどれですか?
<!-- 生年月日 -->
<input type="①" name="birthday">

<!-- 予約時刻 -->
<input type="②" name="time">
①date ②time
①birthday ②clock
①calendar ②hour
①day ②minute
モバイルデバイスでの入力タイプとキーボード表示について正しい説明はどれですか?
すべての入力タイプで同じキーボードが表示される
type属性に応じて最適なキーボードが自動表示される
JavaScriptで明示的にキーボードを指定する必要がある
CSS設定でキーボード種類を決定する

まとめ

女子生徒のアイコン

いろんな入力タイプがあるんですね!特にtype=“email”やtype=“number”は、入力する内容に合わせて自動的にチェックしてくれるから便利!

男子生徒のアイコン

モバイルで見ると、入力タイプに応じて最適なキーボードが表示されるのも驚きました。ユーザーのことを考えた機能ですね。

AI先生のアイコン

その通り!適切な入力タイプを選ぶことで、ユーザーは快適に入力でき、開発者は品質の高いデータを取得できるんだ。次の章では、これらの入力タイプをさらに便利にする属性について学んでいこう。

入力タイプ活用のポイント
  • テキスト系 用途に応じてtext、email、password、tel、urlを使い分け、自動バリデーションを活用
  • 数値系 numberで数値入力、rangeでスライダー選択、min/max属性で範囲制限
  • 日付・時間系 date、time、datetime-localで正確な日時入力をサポート
  • 選択系 radioで単一選択、checkboxで複数選択、fileでアップロード機能を実装
  • モバイル最適化 type属性に応じて最適なキーボードが自動表示され、入力効率が向上

適切な入力タイプの選択は、ユーザビリティとデータ品質の両方を向上させる重要な要素です。次の章では、これらの入力をさらに便利にする属性について詳しく学んでいきましょう。

学習チェック

このレッスンを理解できたら「完了」をクリックしてください。
後で見直したい場合は「未完了に戻す」で進捗をリセットできます。

レッスン完了!🎉

お疲れさまでした!