【6日でできるHTML入門】フォームの作成

 Webサイト上でアンケートを行ったり、ユーザーから情報を受け取ったりするには、HTMLのフォーム要素を使って「入力画面」を作成します。本章では、フォームの基本から主要な入力コントロール、そしてフォームをまとめる<form>タグの使い方までを、サンプルHTMLとともに詳しく解説します。

1.フォームとは…?

 フォームは、ユーザーに文字や選択肢を入力させ、その情報をサーバーへ送信するための仕組みです。以下のような要素を使って構成します。

要素名タグ/属性用途
ラベル<label>入力コントロールの説明文(ラベル)をグループ化
テキスト入力<input type="text">一行テキストボックス
テキストエリア<textarea>複数行テキスト入力
チェックボックス<input type="checkbox">複数選択可能なチェックボックス
ラジオボタン<input type="radio">単一選択のラジオボタン
セレクトメニュー<select>, <option>ドロップダウンリスト
ボタン<input type="submit/reset/button"> または <button>送信・クリア・任意操作のボタン
フォーム領域<form action="" method="">送信先・送信方式を指定するフォーム本体

注意: HTMLだけでは送信後の処理は行えず、CGIやPHPなどサーバー側プログラムが必要になります。

2.ラベルによる関連付け <label>

<label>タグで囲むと、文字部分をクリックしても対応する入力欄にフォーカスが移動します。

ファイル名: lesson30-1.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>📋 ラベルの例</title>
  <style>
    label { font-weight: bold; }
  </style>
</head>
<body>
  <p>
    <label>
      お名前:<input type="text" name="username" size="20">
    </label>
  </p>
</body>
</html>
  • ポイント: ユーザビリティを向上させる必須テクニックです。

ブラウザの出力例

3.for属性を使用した関連付け

<label for="ID"><input id="ID">を組み合わせても同様に関連付けが可能です。

属性説明
for対応するフォーム要素のid属性値を指定

ファイル名: lesson30-2.html

<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>📋 for属性の例</title></head>
<body>
  <p>
    <label for="email">メール:</label>
    <input type="email" id="email" name="email" size="25">
  </p>
</body>
</html>

ブラウザの出力例

4.テキストボックス・テキストエリア <input>, <textarea>

属性説明
nameサーバーへ送信する際のキー名
size<input>の表示幅(文字数)
cols<textarea>の列数(文字数)
rows<textarea>の行数
  • 一行入力: <input type="text" name="" size="">
  • 複数行入力: <textarea name="" cols="" rows=""></textarea>

ファイル名: lesson30-3.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>📋 テキスト入力の例</title>
  <style>
    textarea { vertical-align: top; }
  </style>
</head>
<body>
  <h1>📋 コメント欄</h1>
  <p>
    <label for="comment">ご意見:</label><br>
    <textarea id="comment" name="comment" cols="40" rows="5"></textarea>
  </p>
</body>
</html>

ブラウザの出力例

5.チェックボックス・ラジオボタン <input>

ファイル名: lesson30-4.html

type説明
checkbox複数選択可能
radio同じname内で一つだけ選択可能
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>📋 選択入力の例</title></head>
<body>
  <h1>📋 アンケート</h1>
  <form>
    <p>— 趣味を選んでください(複数可) —<br>
      <label><input type="checkbox" name="hobby" value="sports">スポーツ</label>
      <label><input type="checkbox" name="hobby" value="music">音楽</label>
      <label><input type="checkbox" name="hobby" value="travel">旅行</label>
    </p>
    <p>— 性別を選んでください —<br>
      <label><input type="radio" name="gender" value="male">男性</label>
      <label><input type="radio" name="gender" value="female">女性</label>
    </p>
  </form>
</body>
</html>

ブラウザの出力例

6.セレクトメニュー <select>, <option>

要素説明
<select>ドロップダウンリスト
<option>リスト項目。value属性で送信値を指定

ファイル名: lesson30-5.html

<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>📋 セレクトの例</title></head>
<body>
  <h1>📋 注文フォーム</h1>
  <form>
    <label for="size">用紙サイズ:</label>
    <select id="size" name="size">
      <option value="">選択してください</option>
      <option value="A3">A3</option>
      <option value="A4">A4</option>
      <option value="A5">A5</option>
    </select>
  </form>
</body>
</html>

ブラウザの出力例

7.ボタン <input>, <button>

タグ/type説明
<input>type="submit"(送信), reset(クリア), button(任意)
<button>同上だがコンテンツ内にHTMLが置ける

ファイル名: lesson30-6.html

<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>📋 ボタンの例</title></head>
<body>
  <form>
    <input type="submit" value="送信">
    <input type="reset"  value="クリア">
    <button type="button" onclick="alert('クリック')">テスト</button>
  </form>
</body>
</html>

ブラウザの出力例

8.フォーム領域の指定 <form>

属性説明
action送信先プログラムのURLまたはファイル名
methodgetまたはpost。大容量データはpost推奨
enctypeapplication/x-www-form-urlencoded(標準)multipart/form-data(ファイル送信)

ファイル名: lesson30-7.html

フォーム要素をまとめ、送信先や方式を指定します。

<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>📋 フォーム全体の例</title></head>
<body>
  <h1>📋 お問い合わせ</h1>
  <form action="submit.php" method="post" enctype="multipart/form-data">
    <p><label for="name">お名前:</label><input type="text" id="name" name="name" size="20"></p>
    <p><label for="email">メール:</label><input type="email" id="email" name="email" size="25"></p>
    <p><label for="message">内容:</label><textarea id="message" name="message" cols="40" rows="5"></textarea></p>
    <p><input type="submit" value="送信"></p>
  </form>
</body>
</html>

ブラウザの出力例

まとめ

  • フォーム要素はユーザー入力を受け取るためのインターフェース。
  • <label> でラベルと入力欄を関連付け、操作性を向上。
  • <input><textarea>, <select> など、多彩なコントロールが利用可能。
  • <form> タグで送信先 (action)・方式 (method)・形式 (enctype) をまとめて指定。

 基本的なタグと属性を押さえておけば、アンケートやお問い合わせフォームはもちろん、複雑な注文フォームやログイン画面まで自由に作成できます。実際に手を動かして、さまざまなフォームを試してみましょう!