フォーム <form>
- 解説
- 1. フォームとは
- 2. フォームの書き方
- 3. 基本的なフォーム部品
- 4. ラベルの書き方
解説
1. フォームとは
フォームとは、入力画面のことです。フォームはユーザー登録画面や、お問い合わせフォームなどに使われます。
例)お問い合わせフォーム
お名前:
アドレス:
お問い合わせ内容:
フォームを作成するにはformタグをベースに、入力するデータの種類に合わせて、複数のform部品タグを使います。
2. フォームの書き方
formのひな型
<form>
    <button type="submit">送信</button>
</form>例)基本的なフォーム
<form>
    お名前:
    <input type="text">
    <button type="submit">送信</button>
</form>表示結果|例)基本的なフォーム
お名前:
順を追って基本的なフォームの作成方法を見ていきましょう。
formタグを記述する
まずはフォームのベースとして、formタグを記述します。
<form></form>送信ボタンを作成する
次に、フォームに入力されたデータを送信するための、送信ボタンを作成します。
送信ボタンはbuttonタグを使います。buttonタグのtype属性を「submit」とすることで、フォームの送信ボタンとして機能します。
また、buttonタグ内に記述したテキストが、ボタン名としてブラウザに表示されます。
<form>
    <button type="submit">送信</button>
</form>表示結果|送信ボタンを作成する
form部品を記述する
最後に、必要に応じてform部品を記述します。
今回はform部品として、1行のテキストの入力を受け付ける「<input type="text">」を使用しています。
また、入力してほしい内容(この例では「お名前:」)をinputタグの前に記述しています。
<form>
    お名前:
    <input type="text">
    <button type="submit">送信</button>
</form>表示結果|form部品を記述する
お名前:
以上で基本的なフォームを作成することができました。
なお、form部品をタテに並べたい場合は、brタグで改行します。
<form>
    お名前:<br>
    <input type="text"><br>
    <button type="submit">送信</button>
</form>表示結果|form部品ごとに改行する
お名前:
3. 基本的なフォーム部品
1行分の入力:テキストボックス <input>
名前の入力や、パスワードの入力など、1行分のテキストを受け付けるform部品のことをテキストボックスといいます。
テキストボックスの作成はinputタグを使います。また、inputタグのtype属性にデータの種類を指定することで、type属性に応じたform部品に変化します。
代表的なinputタグ
※inputタグに閉じタグは必要ありません。
テキストボックス
<input type="text">表示結果|<input type="text">
メールアドレス
<input type="email">(フォーム送信時にアドレスとして有効な文字かをチェックします)
表示結果|<input type="email">
パスワード
<input type="password">(入力されたテキストを、黒丸に置き換えます)
表示結果|<input type="password">
日付
<input type="date">表示結果|<input type="date">
複数行の入力:テキストエリア<textarea>
お問い合わせ内容など、複数行のテキストを受け付ける場合は、textareaタグを使います。
※textareaタグは閉じタグが必要なので注意してください。
構文:textareaタグ
<textarea></textarea>表示結果|<textarea></textarea>
4. ラベルの書き方
form部品を説明するテキスト(「お名前:」等)のことをラベルといいます。
labelタグを使うことで、ラベルとform部品(「<input type="text">」等)を結びつけることができ、ラベルをクリックすると自動で対応するform部品にフォーカスするようになります。
labelタグの使い方
<label>
    お名前:
    <input type="text">
</label>表示結果(「お名前:」をクリックして効果を確認してください。)
また、labelタグのfor属性に、form部品に設定したid属性の値を指定することでも、ラベルとform部品を結びつけることができます。
for属性によるラベルの指定では、labelタグ内にform部品を記述する必要はありません。
※id属性については『classとid』のページで解説します。
for属性を使ったlabelタグの使い方
<label for="name">お名前:</label>
<input type="text" id="name">表示結果(「お名前:」をクリックして効果を確認してください。)
問題
実践問題
| (1) | VSCodeを起動し、ヘッダーメニューの「ファイル」から、「workspace_html_css」フォルダーを開いてください。 | 
| (2) | 「workspace_html_css」フォルダー内の、「html_basic」フォルダー内に、「form」フォルダーを新規作成してください。 | 
| (3) | 「form」フォルダー内に、「index.html」を新規作成し、フッターメニューの「Go Live」ボタンをクリックしてブラウザで表示してください。 | 
設計書(1)|会員登録フォーム
| ラベル | タグ | type | 
|---|---|---|
| お名前: | input | text | 
| 生年月日: | input | date | 
| email: | input | |
| パスワード: | input | password | 
| パスワード(再確認): | input | password | 
| 備考: | textarea | なし | 
| なし | button | submit | 
下記コードを該当ファイルにペーストし、各問に答えてください。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>フォーム</title>
</head>
<body>
    <h1>会員登録</h1>
    <!--
    (問1)「設計書(1)」の通り、下記inputタグ、buttonタグのtype属性を設定してください。 -->
    <!--
    (問2)「設計書(1)」を参考に、labelタグでラベル(例 「お名前:」)を囲んでください。
    labelタグにfor属性を設定し、対応するフォーム部品と紐づけてください。 -->
    <form>
        お名前:<br>
        <input type="" id="name"><br>
        生年月日:<br>
        <input type="" id="birthDay"><br>
        email:<br>
        <input type="" id="mail"><br>
        パスワード:<br>
        <input type="" id="pass"><br>
        パスワード(再確認):<br>
        <input type="" id="rePass"><br>
        備考:<br>
        <textarea id="remarks"></textarea><br>
        <button type="">送信</button>
    </form>
</body>
</html> 
                            
