ウェブエンジニア問題集
第7章

HTMLフォーム入門 — form・input・label・button

4
この章の目次開く

フォームは、ユーザーから入力を受け取るためのHTMLです。問い合わせ、ログイン、検索、アンケート、購入手続きなど、Webアプリの多くはフォームから始まります。

<form action="/contact" method="post">
  <label for="name">お名前</label>
  <input id="name" name="name" type="text" required>
 
  <button type="submit">送信</button>
</form>
html

フォーム要素のチートシート

タグ用途よく使う属性注意点
form入力欄のまとまりaction, method送信先と送信方法を決める
label入力欄の説明for対応する inputid と合わせる
input1行入力や選択type, id, name, requiredtype で役割が変わる
textarea複数行入力name, rows閉じタグが必要
select選択リストnameoption と組み合わせる
option選択肢value表示文と送信値を分けられる
buttonボタンtypesubmit/reset/buttonを明示する
fieldset関連する入力のグループなしradioなどのまとまりに便利
legendグループの見出しなしfieldset 内で使う

input のtype

type用途
text1行テキスト
emailメールアドレス
passwordパスワード
tel電話番号
urlURL
number数値
checkbox複数選択
radio単一選択
submit送信
<label for="email">メールアドレス</label>
<input id="email" name="email" type="email" required>
html

構文: <input type="種類" name="送信名">

属性説明
type入力欄の種類
name送信時のキー
idlabel for と対応させる識別子
required必須入力
placeholder入力例

戻り値: HTML要素なので戻り値はありません。フォーム送信時に name=value の形で値が送られます。

フォーム部品には、基本的に labelname をセットで付けます。

checkboxとradio

複数選択ならcheckbox、1つだけ選ぶならradioです。

<fieldset>
  <legend>学びたい内容</legend>
 
  <label>
    <input type="checkbox" name="topics" value="html">
    HTML
  </label>
 
  <label>
    <input type="checkbox" name="topics" value="css">
    CSS
  </label>
</fieldset>
html
<fieldset>
  <legend>経験年数</legend>
 
  <label>
    <input type="radio" name="experience" value="beginner">
    未経験
  </label>
 
  <label>
    <input type="radio" name="experience" value="experienced">
    経験あり
  </label>
</fieldset>
html

よくあるミス

ミス問題修正
label がない入力欄の意味が伝わりにくいlabel forid を対応
name がない送信時に値が送られない各入力に name を付ける
buttontype がない意図せずsubmitになることがあるtype を明示する
placeholderをlabel代わりにする入力後に説明が消えるlabelを別に置く

参考リンク

次章では、ページ全体の意味を整理するセマンティックHTMLを学びます。

HTMLクイズに挑戦するform、input、label、buttonの基本をクイズで確認しよう