テキスト入力
input label textarea
HTML の <input> 要素はtype 属性によって多様な入力コントロールに変化します。 HTML5 で多くの新しい type が追加され、モバイルキーボードの最適化やブラウザ標準バリデーションが利用できます。
各 input type のデモ
label と htmlFor による関連付け
readOnly 状態
disabled 状態
<label htmlFor="username">ユーザー名</label>
<input
id="username"
type="text"
placeholder="例: yamada_taro"
required
minLength={3}
maxLength={20}
autoComplete="username"
/>主要な属性
<input
type="text"
placeholder="例: yamada"
required
minLength={3}
maxLength={20}
pattern="[a-zA-Z0-9_]+"
autoComplete="username"
readOnly={false}
disabled={false}
/>textarea との比較
{/* 1行: input */}
<input type="text" placeholder="1行テキスト" />
{/* 複数行: textarea */}
<textarea rows={4} placeholder="複数行..." />input type 比較表
| type | 用途 | モバイルキーボード | HTML5追加 |
|---|---|---|---|
| text | 汎用テキスト | 通常キーボード | |
| メールアドレス | @ キー付き | ✓ | |
| number | 数値 | 数字キーボード | ✓ |
| tel | 電話番号 | 電話用キーボード | ✓ |
| url | URL | / と . が大きい | ✓ |
| search | 検索 | 検索ボタン付き | ✓ |
| date | 日付 | 日付ピッカー | ✓ |
| time | 時刻 | 時刻ピッカー | ✓ |
| datetime-local | 日時(ローカル) | 日時ピッカー | ✓ |
| week | 週 | 週選択UI | ✓ |
| month | 月 | 月選択UI | ✓ |
| color | 色選択 | カラーピッカー | ✓ |
| range | スライダー | スライダーUI | ✓ |
Tips
autocomplete属性を適切に設定すると、パスワードマネージャーやブラウザの自動入力が正しく機能し UX が向上する- 正確な
typeを指定することでモバイルに最適なキーボードが表示される(例: type="email" → @ キー付き) labelのhtmlForと input のidを必ず対応させることでアクセシビリティが確保される- 複数行テキストには
textareaを使う。inputは常に1行のみ readOnly(JSX)とdisabledの違いに注意: readOnly はフォーム送信時に値が含まれるが、disabled は含まれない
🤖 AIプロンプトテンプレート
以下について、AIへの質問プロンプト例を示します。 - `<input type="text">` の `placeholder` はラベルの代替として使えますか?アクセシビリティ上の問題を教えてください。 - `required`・`minLength`・`maxLength`・`pattern` を組み合わせた HTML5 バリデーションの実装例を教えてください。 - `autocomplete` 属性に正確な値("name"・"email"・"username" など)を指定する利点と、パスワードマネージャーへの影響を教えてください。 - `<input>` の `readOnly` と `disabled` の違いを、フォーム送信時のデータ送信有無とともに教えてください。 - `<input>` と `<textarea>` の使い分けと、`textarea` の `rows`・`resize` CSS プロパティの使い方を教えてください。
⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。