HTMLで入力フォームを作成する方法

HTMLでお問い合わせ・お申し込みフォームを作ります。
実際にメールを送信する事は、HTMLだけでは出来ません(PHP等のサーバーサイドのプログラムが必要です)が、見た目だけならHTMLで作る事ができます。
formタグやinputタグ、selectタグを使って、作っていきます。

1.formタグで全体を括る

お問い合わせフォームの中に入る要素(お名前の入力欄など)は、全てformタグの中に入れる必要があります。
さらに、formタグには、2つの属性が必須です。
・action属性
実際にメールを送信するプログラムがある場所へのパスを書く

・method属性
送信するプログラムへデータを送る際の送り方(POSTやGETがあるが、お問い合わせフォームでは通常POSTを使う)

今回は、action属性の値を「mail_check.php」、method属性をPOSTとして作成します。

<form action="mail_check.php" method="POST">

</form>

2.入力項目を作っていく

お問い合わせフォームのパーツは、inputタグを多く使います。
inputタグは、type属性の値に応じて様々なUIを作る事ができます。
また、name属性をつける必要があります。
name属性の値は、他のものと被らないもの(ユニークな値と表現します)である必要があります。また、実際にメールを送信するプログラム側と連携させる必要があるため、プログラマーと相談しつつ値を書いていく必要があります。
labelタグは、その名の通り、入力項目のラベル(項目名)になる部分を指定するのに使います。labelタグで項目名を括り、for属性の値を、該当する入力項目のid属性と同じものにします。
※尚、id属性とname属性は、同じでも、同じでなくても問題ありません。混同しやすいので、以下のコードではあえてバラバラの値を入れてありますが、同じ値を入れていただいても大丈夫です。

2-1.一行テキスト

一行テキストは、type属性にtextを入れます。
お名前の入力欄など、一行で書ける量の入力欄に適しています。

<form action="mail_send.php" method="POST">
<label for="onamae">お名前</label>:<input type="text" name="onamae" id="onamae">
</form>




2-2.メールアドレス

type属性にemailを入れます。見た目は一行テキストと同じですが、メールアドレスのフォーマットになっていない場合、エラーになります。

<form action="mail_send.php" method="POST">
<label for="onamae">お名前</label>:<input type="text" name="onamae" id="onamae"><br>
<label for="meado">メールアドレス</label>:<input type="email" name="address" id="meado">
</form>




2-3.数値

type属性にnumberを入れます。こちらも見た目は一行テキストと同じですが、半角の数値しか入力できなくなります。
数値で値を入れて欲しい時に使います。

<form action="mail_send.php" method="POST">
<label for="onamae">お名前</label>:<input type="text" name="onamae" id="onamae"><br>
<label for="meado">メールアドレス</label>:<input type="email" name="address" id="meado"><br>
<label for="age">年齢</label>:<input type="number" name="nenrei" id="age">
</form>




2-4.電話番号

type属性にtelを入れます。ただ、特に入力制限がないので、独自で入力制限のルールをpattern属性を使って入力します。
000-0000-0000
以上のような入力制限をする場合の例で記述します。

<form action="mail_send.php" method="POST">
〜省略〜
<label for="cellular">電話番号</label>:<input type="tel" name="denwa" id="cellular" pattern="[0-9]{3}-[0-9]{4}-[0-9]{4}"><br>
</form>




2-5.ラジオボタン

type属性にradioを入れます。複数の選択肢から、一つだけ選択させたい時に使います。重要なのは、name属性に同じ値を入れる必要がある点です。name属性に同じ値が入っているものをグループとして扱い、その中から一つ選ばせる形になります。
また、実際にformタグのaction属性で指定したプログラムに渡す値を、value属性で記述する必要があります。

<form action="mail_send.php" method="POST">
〜省略〜
<input type="radio" name="seibetsu" value="man" id="male"><label for="male">男性</label><br>
<input type="radio" name="seibetsu" value="women" id="female"><label for="female">女性</label>
</form>




2-6.チェックボックス

type属性にcheckboxを入れます。こちらは、複数選択が可能な選択肢を作るのに使います。ラジオボタンと同様に、value属性には各々送りたいデータを記述します。
name属性は、同じ値を入れてもいいし、プログラムによってはバラバラの値を入れても良いです。今回は同じ値を入れています。

<form action="mail_send.php" method="POST">
〜省略〜
<input type="checkbox" name="food" value="ハンバーグ" id="food01"><label for="food01">ハンバーグ</label><br>
<input type="checkbox" name="food" value="カレーライス" id="food02"><label for="food02">カレーライス</label><br>
<input type="checkbox" name="food" value="ラーメン" id="food03"><label for="food03">ラーメン</label>
</form>




2-7.セレクトボックス

セレクトボックスは、inputタグではなく、selectタグを使います。
また、選択する項目はoptionタグで記述します。
こちらもname属性とvalue属性が必要になります。
name属性は、selectタグに、value属性はoptionタグに、各々記述していきます。

<form action="mail_send.php" method="POST">
〜省略〜
好きな色:
<select name="color">
<option value="赤">赤</option>
<option value="青">青</option>
<option value="黄色">黄色</option>
</select>
</form>




2-8.テキストエリア

複数行のテキストを入力するのに使うのが、テキストエリアです。
textareaタグを使用します。textareaタグは、閉じタグが必要になるので注意が必要です。

<form action="mail_send.php" method="POST">
〜省略〜
<label for="naiyou">お問い合わせ内容</label>:<textarea name="contact" id="naiyou"></textarea>
</form>




上記の画像では、入力できる大きさが小さいですが、CSSで変える事が出来ます。(inputなどもCSSで大きさを変えられます)


2-9.送信ボタン

inputタグのtype属性に、submitを入れます。
また、ボタンの文言が、value属性に入れた値になります。

<form action="mail_send.php" method="POST">
〜省略〜
<input type="submit" value="以上の内容で送信">
</form>




一般的なフォームで使うタグと属性でした。


3.inputタグのその他のtype属性と他の属性

3-1.inputタグのtype属性一覧

inputタグのtype属性は、様々なものがあり、上記のコードでは紹介しきれない物も沢山あります。
以下が一覧です。


type属性の値 意味・使い方
text 1行のテキスト入力
number 半角数字のみ
tel 電話番号
email メールアドレス
url サイトのURL
password パスワード
search 検索フォーム
reset リセットボタン
submit 送信ボタン
image 画像送信ボタン
date カレンダーから年月日を入力する
datetime-local 年月日+時間・分
month 年と月を入力
week 週を入力
time 時間と分を入力
radio ラジオボタン
checkbox チェックボックス
hidden 表示しないデータ
button ボタン
button ボタン
file ファイルのアップロード
color カラーパレット
range 範囲を選択



3-2.type属性以外でよく使う属性

入力のサンプルを作る事ができるplaceholder属性がよく使われます。
メールアドレス:<input type="email" name="email" placeholder="例)xxx@xx.com">


そのほかにも、様々な属性があります。必要に応じて調べてみるのも良いでしょう。