【HTML】フォームの基本タグと使い方

form_アイキャッチ
記事内に広告を含むことがあります。
こばゆた
こばゆた

フォームは今やWebサイトには欠かせないものとなっています

チャッピー
チャッピー

個お問い合わせや会員情報などを入力するやつだね

こばゆた
こばゆた

フォームと言っても一つのタグで構成されているわけでなく様々な部品が組み合わさって構成されてるんだ

フォームの作例
きなこ
きなこ

組み合わせ次第で色んなフォームが作れそう

こばゆた
こばゆた

今回はそのフォームについてと作成方法を解説していきます

今日のテーマ

  • 基本的なフォームの作成方法がわかる
  • フォームを作成するためのタグがわかる
スポンサーリンク

1.フォームとは?どんな場面で使うのか

フォームは、ユーザーから情報を入力してもらい、それをWebサーバーに送るための仕組みです。

例えば…

  • 名前やメールアドレスの入力
  • コメントや質問の送信
  • 商品購入時の情報入力

これらは全てフォームが使われています。

スポンサーリンク

2.フォームを作るタグ

1-1.formタグ

まずフォームを作るにはformタグで囲う必要があります。

こばゆた
こばゆた

「これはフォームですよ」と伝えるもので、この中にフォーム部品のコードを書いていきます。

<form>

</form>

1-2.inputタグ

inputタグは、ユーザーから文字・数値・チェック・ファイルなどの入力を受け取るためのタグです。
type属性を変えることで、さまざまな入力形式に対応できます。

また、閉じタグは必要ありません。

<input type="">
用語

type属性

値を入力する事によって様々なフォーム部品を作る事ができる

例えばinputタグのtype属性をtextとすると簡単な入力欄ができます。

<p>お名前</p>
<input type="text">
表示例

お名前

チャッピー
チャッピー

よく見るやつだね

こばゆた
こばゆた

こちらがtype属性に入るものの一例です。

typeの値説明使用例
text一行のテキスト入力欄名前やIDなど
emailメール形式の入力メールアドレス(バリデーションあり)
passwordパスワード入力(非表示)ログインフォームなど
number数値のみ入力可能年齢・数量入力など
checkboxチェックボックス利用規約同意・複数選択肢
radioラジオボタン単一選択(例:性別)
submit送信ボタンフォームをサーバーへ送信
fileファイル選択画像やPDFのアップロード
date日付選択カレンダーUI付き

1-3.textareaタグ

textareaタグは複数行入力テキストでこちらは閉じタグが必要です。

またこちらはtextareaタグで文字を挟む事によって初期に表示できる文字を設定できます。

<p>ご意見</p>
<textarea></textarea>
表示例
ご意見

もう一つ使い勝手のよいフォームにするためのタグがあります。

1-4.labelタグ

labelタグとinputなどのフォーム部品とを関連付ける事によって選択肢を選びやすくユーザーが使いやすいフォームをつくることができます。

こばゆた
こばゆた

「お名前」とあるところをクリックして見てください

表示例
きなこ
きなこ

ボックスの中にカーソルが移った!

こばゆた
こばゆた

これがlabelタグと選択肢を関連付けるという事だよ

では作り方を見ていこう

作り方1:idとforを使う

作り方
  • STEP1
    ラベルにしたいテキスト(ここではお名前)をlabelタグで挟む
    <label>お名前</label>
    <input type="text">
  • STEP2
    labelタグの中にfor属性を指定し、値をつける
    <label for="name">お名前</label>
    <input type="text">
    値は好きな名前で良いですがわかりやすいものにしましょう。重複させたり、数字や記号から始まるものは使えません。(ここでは”name”という値を付けました)
  • STEP3
    inputタグの方にはid属性を指定し、値はlabelタグのfor属性で付けた値と同じものをつける
    <label for="name">お名前</label>
    <input type="text" id="name">

「お名前」をクリックすると入力欄にカーソルが移るようになりました。

作り方2:フォーム部品全体を<label>タグで挟む

これはそのままです(笑)。作ってものをlabelタグで挟むだけです。

表示例
こばゆた
こばゆた

どちらでもOKです!

1-5.selectタグ

selectタグは複数の選択肢あるもの(年齢や出身地など)の任意の選択肢を選んで欲しい場合につかうものです。

表示例
年齢を選択して下さい

セレクトボックスの作り方

セレクトボックスの作り方
  • STEP1
    selectタグで大枠を作る
    年齢を選択して下さい<br>
    <select>
    
    </select>
  • STEP2
    optionタグで選択肢を囲む
    年齢を選択して下さい<br>
    <select>
      <option>20歳未満</option>
      <option>20代</option>
      <option>30代</option>
      <option>40代</option>
      <option>50代</option>
      <option>60代以上</option>
    </select>
  • STEP4
    optionタグ内にvalue属性と値を記入する
    年齢を選択して下さい<br>
    <select>
      <option value="20歳未満">20歳未満</option>
      <option value="20代">20代</option>
      <option value="30代">30代</option>
      <option value="40代">40代</option>
      <option value="50代">50代</option>
      <option value="60代以上">60代以上</option>
    </select>
    value属性の値には選択肢の値を入れておきます

年齢を選択して下さい

size属性

selectタグ内にsize属性を書き、最初に表示したい選択肢の値を数字で書くと最初に表示できるリスト数を指定できます。

年齢を選択して下さい<br>
<select size="2">
  <option value="20歳未満">20歳未満</option>
  <option value="20代">20代</option>
  <option value="30代">30代</option>
  <option value="40代">40代</option>
  <option value="50代">50代</option>
  <option value="60代以上">60代以上</option>
</select>
表示例
年齢を選択して下さい

指定した選択肢の数(ここでは2つ)が最初から選択されています。(スマホだとできてないです)

こばゆた
こばゆた

他の選択肢はスクロールをすることで見られます

multiple属性

selectタグ内にmultiple属性を入れると複数選択ができるようになります。(Macなら⌘キーを押しながら、Windowsの場合はshiftキーを押しながら)

年齢を選択して下さい<br>
<select multiple>
  <option value="20歳未満">20歳未満</option>
  <option value="20代">20代</option>
  <option value="30代">30代</option>
  <option value="40代">40代</option>
  <option value="50代">50代</option>
  <option value="60代以上">60代以上</option>
</select>
表示例
年齢を選択して下さい
こばゆた
こばゆた

Macなら⌘キーを押しながら、Windowsの場合はshiftキーを押しながらで複数選択できます。

selected

<option selected>とすると最初から選択された状態になります。最初から選んで欲しい選択肢がある場合時などに使用します。

年齢を選択して下さい<br>
<select>
  <option value="20歳未満">20歳未満</option>
  <option value="20代">20代</option>
  <option value="30代">30代</option>
  <option value="40代" selected>40代</option>
  <option value="50代">50代</option>
  <option value="60代以上">60代以上</option>
</select>
表示例
年齢を選択して下さい
こばゆた
こばゆた

40代にselectedが付いているので初期値は40代になっていると思います

1-6.ラジオボックス

ラジオボックスは血液型や性別など複数ある選択肢から1つの選択肢を選んで欲しい場合に使います。

性別を選んでください<br>
<label><input type="radio" value="男性" name="gender">男性</label>
<label><input type="radio" value="女性" name="gender">女性</label>
<label><input type="radio" value="その他" name="gender">その他</label>
表示例
性別を選んで下さい

ラジオボックスの作り方

ラジオボックスの作り方
  • STEP1
    選択肢を作る
    性別を選んでください<br>
    男性
    女性
    その他
  • STEP2
    inputタグをつけてtype属性をradioにする
    性別を選んでください<br>
    <input type="radio" value="男性">男性
    <input type="radio" value="女性">女性
    <input type="radio" value="その他">その他
    value属性の値もそれぞれ選択肢に合わせて書いておきます

    性別を選んで下さい

    男性 女性 その他

    きなこ
    きなこ
    あれ?一つしか選べないのにみんな選べるよ!
    こばゆた
    こばゆた
    そういう場合は次のステップを
  • STEP3
    name属性をつけてグループ化する
    name属性と値を設定します。またここの値は揃えます。
    性別を選んでください<br>
    <input type="radio" value="男性" name="gender">男性
    <input type="radio" value="女性" name="gender">女性
    <input type="radio" value="その他" name="gender">その他

    性別を選んで下さい

    男性 女性 その他

    きなこ
    きなこ
    ちゃんと一つだけ選べた!
  • STEP4
    labelタグで選択肢を囲って完成
    使いやすいフォームにするためにlabelタグで囲います
    性別を選んでください<br>
    <label><input type="radio" value="男性" name="gender">男性</label>
    <label><input type="radio" value="女性" name="gender">女性</label>
    <label><input type="radio" value="その他" name="gender">その他</label>

    性別を選んで下さい

    これで先頭の丸にカーソルを合わせなくても選択肢をクリックするだけで選択が可能になりました。

1-7.チェックボックス

ラジオボックスと似ていますが複数ある選択肢から複数の選択肢を選べるところが異なります。

<p>お好きなジャンルを選んでください(複数回答可)</p>
<label><input type="checkbox" name="category" value="グルメ">グルメ</label> 
<label> <input type="checkbox" name="category" value="エンタメ">エンタメ</label>
<label><input type="checkbox" name="category" value="スポーツ">スポーツ</label>
<label> <input type="checkbox" name="category" value="ファッション">ファッション</label>
表示例

お好きなジャンルを選んでください(複数回答可)

 

チェックボックスの作り方

こばゆた
こばゆた

inputのtype属性をcheckboxにすればあとはラジオボックスと同様に、value属性、name属性をそれぞれ書けばOKです!

複数の選択肢を選ぶことはセレクトボックスでもできますがレイアウトの問題やスペースの節約とかを考えて使い分けるのがベターです。

ラジオボタンとチェックボックスはinputにchecked属性をつけると最初から選択された状態になます。

<p>お好きなジャンルを選んでください(複数回答可)</p>
<label><input type="checkbox" name="category" value="グルメ">グルメ</label> 
<label><input type="checkbox" name="category" value="エンタメ" checked>エンタメ</label>
<label><input type="checkbox" name="category" value="スポーツ" checked>スポーツ</label>
<label><input type="checkbox" name="category" value="ファッション">ファッション</label>
表示例

お好きなジャンルを選んでください(複数回答可)

 

fieldsetタグとlegendタグ

ラジオボタンとチェックボックスはfieldsetタグで囲い、タイトルをlegendタグと呼ばれるタグで囲う事によってグループ化する事ができます。

<fieldset>
<legend>お好きなジャンルを選んでください(複数回答可)</legend>
  <label><input type="checkbox" name="category" value="グルメ">グルメ</label> 
  <label><input type="checkbox" name="category" value="エンタメ" checked>エンタメ</label>
  <label><input type="checkbox" name="category" value="スポーツ" checked>スポーツ</label>
  <label><input type="checkbox" name="category" value="ファッション">ファッション</label>
</fieldset>
表示例

See the Pen fieldset by kbyt (@kbo58) on CodePen.

こばゆた
こばゆた

参考までにどうぞ!

1-8.ボタンについて

inputのtype属性の値を”submit”にして作成します。

<input type="submit">
表示例

value属性の値を変える事でボタンの文言を変える事もできます。

<input type="submit" value="送っちゃう?">
表示例

inputのtype属性の値を”button”にしても作成できます。

<input type="button">
表示例

ボタンにsrc属性=”画像ファイル”で画像を指定することもできます。

<input type="image" src="画像のファイル名" alt="送信">
表示例

3.フォームでよく使う属性

3-1.value属性

こばゆた
こばゆた

inputタグ内にvalue属性と値を入れる事で最初から入力されている文字を指定できます。

<label>お名前</label>
<input type="text" value="Yamada Taro">
表示例
チャッピー
チャッピー

入力例があるのはわかったけど、入力の際にわざわざ内容を消して書き直すのは面倒だよ

こばゆた
こばゆた

そんな時のためにplaceholder属性というものが用意されてるよ

3-2.placeholder属性

placeholder属性はあらかじめ値で設定したテキストを薄く表示させ、入力されると消すことができるといったものになります。

こばゆた
こばゆた

文章だと意味がわかりにくいので以下の例を見てください

<label for="name3-2">お名前</label>
<input type="text"  id="name3-2" placeholder="Yamada Taro">
表示例
チャッピー
チャッピー

おー!いちいち消さなくて良くなった!

上の例のように記入例が薄く表示され、何らかの文字が入力されると消えます。

特別な理由がなければplaceholder属性を使うようにすると親切な気持ちが伝わります。

3-3.required属性

<label for="name3-3">お名前</label>
<input type="text" id="name3-3" placeholder="Yamada Taro" required>

required属性は入力を必須にする属性で、試しに入力をせず、Enterをクリックするとエラーメッセージが出るかと思います。

表示例
きなこ
きなこ

エラーメッセージが出た!

このように必ず入力して欲しい場面でこれを使います。

3-4.disable属性

こちらはボタンで良く使われる属性で、付与するとクリックや入力ができなくなります。

入力欄の場合:

<label for="name3-4">お名前</label>
<input type="text" id="name3-4" placeholder="Yamada Taro" required disabled>
表示例

ボタンの場合:

<input type="button" disabled>
表示例

4.まとめ

フォームはお問い合わせやコメントなどの送信、商品購入などでよく見られるもので、formタグとその中にパーツを入れて作成する。

<form>

<!--この中に欲しいパーツを作成していく-->

</form>

フォームパーツの一例:

タグタグ内に書く属性名と値結果や用途
<input>type=”text”お名前入力フォームなどの1行テキスト入力欄
type=”radio”複数から1つ選ぶラジオボックス
type=”checkbox”複数から好きなだけ選ぶチェックボックス
type=”submit”フォームを送信する送信ボタンを作る
type=”button”ボタンが作れる
placeholder=”中に入れたい文字”記入例など
value=” “input要素の選択肢の値を送信する
name=” “チェックボックスやラジオボックスでのグループ化
checked最初からチェックした状態にできる
<textarea></textarea>ご意見やお問い合わせなどの複数行テキスト入力欄
<select>
<option></option>
</select>
選択肢をスライドで選ぶセレクトボックス
size=” “初期表示の数を設定
multiple複数選択できる
selected最初から選択した状態にできる

HTML/CSSをもっと学びたい方はこちらもオススメです!

コメント