フォームのJavaScript、フォームのCSSも併せてご覧ください。
要素
form
<form name="myForm" action="example.php" method="POST" enctype="multipart/form-data" autocomplete="off"></form>
form要素の属性 | 内容 |
---|---|
name | フォームの名前 |
action | 送信先 |
enctype | application/x-www-form-urlencoded(初期値)、multipart/form-data(type="file"使用時)、text/plain |
method | フォーム送信時にブラウザーが使用するHTTPメソッド |
autocomplete | 入力補完(on/off/default) |
autocomplete属性は、offにしてもブラウザーで無視されてしまう事があるので、自動入力を使用しているユーザーのために適切に設定しておくと良いです。
input
inputのtype | 内容 |
---|---|
text | (デフォルト)1行テキストボックス 2行以上にわたる長い文章を入力させたい場合は、textarea要素を使う |
password | パスワード 入力したテキストがアスタリスク(*)などに置き換えて表示(データ自体は暗号化されない) |
checkbox | 複数選択が可能(checked属性であらかじめチェックの付いた状態にできる) |
radio | ラジオボタン 複数の中から一つしか選択できない name属性で同じ名前を付けて同じグループ (checked属性であらかじめチェック) |
file | ファイル送信 |
hidden | 隠しデータ |
search | 検索テキスト |
tel | 電話番号 |
url | URL |
メールアドレス | |
number | 数値 |
range | レンジ |
color | 色 |
inputのtype(時間系) | 内容 |
---|---|
datetime | UTC(協定世界時)による日時の入力欄を作成 |
date | 日付の入力欄を作成 |
month | 月の入力欄を作成 |
week | 月の入力欄を作成 |
time | 時間の入力欄を作成 |
datetime-local | UTC(協定世界時)によらないローカル日時の入力欄を作成 |
inputのtype(ボタン系) | 内容 |
---|---|
submit | 送信ボタン |
reset | リセットボタン それまでに入力した情報をキャンセルして初期状態に戻す |
button | 汎用ボタン |
image | 画像のボタン src属性で使用する画像ファイル指定 alt属性必須 |
selectbox
<select name="bloodtype">
<option value="A">A型</option>
<option value="B">B型</option>
<option value="O">O型</option>
<option value="AB">AB型</option>
</select>
datalist
selectboxとの違い:選択後に文字修正が可能です。
<input type="text" name="city" list="citylist">
<datalist id="citylist">
<option value="東京">
<option value="大阪">
<option value="福岡">
</datalist>
textarea
<textarea name="名前" cols="40" rows="8"></textarea>
textareaの属性 | 内容 |
---|---|
cols | 一行の文字数 |
rows | 行数 |
button
<button type="button">ボタン</button>
buttonの属性 | 内容 |
---|---|
type | reset/submit/button |
label
input、textarea、select要素にはラベルを付けられます。
labelと入力欄を関連付けすると、labelクリック時に入力欄にフォーカスを与えたりアクティブにできます。
ヒット領域を拡大できるで操作しやすくなります。
<label for="label-item">ラベルの文言</label>
<input type="text" name="item" id="label-item">
fieldset
各要素はfieldsetタグで囲むとグループ化できます。
グループ自体にキャプションを付ける時はlegend要素を使用します。
<fieldset>
<legend>趣味</legend>
<input type="checkbox" name="hobby" value="listenmusic" id="label-listenmusic">
<label for="label-listenmusic">音楽鑑賞</label>
<input type="checkbox" name="hobby" value="readbook" id="readbook">
<label for="label-readbook">読書</label>
<input type="checkbox" name="hobby" value="watchmovie" id="label-watchmovie">
<label for="label-watchmovie">映画鑑賞</label>
<input type="checkbox" name="hobby" value="playgame" id="label-playgame">
<label for="label-playgame">ゲーム</label>
</fieldset>
属性
name属性
フォーム部品に名前をつけられます。
id属性
labelのforと要素のidを揃えるとlabelと要素の紐づけができます。
name属性とid属性の違い
id/name | 違い |
---|---|
id | JavaScriptでそのタグを指定するため |
name | 入力された値をPHPなどで送信するため |
value属性
送信される値を指定します。
size属性
inputでは幅を指定します。
selectでは表示する項目数を指定します。
maxlength属性
最長の長さを指定します。
フォーム自体に入力制限がかかります。
(自由に入力できる系のみ)
<input type="password" maxlength="8">
minlength属性
最短の長さを指定します。
満たしていない場合、送信ボタンを押した時にエラーが表示されます。
(自由に入力できる系のみ)
<input type="password" minlength="4">
autocomplete属性
<input type="text" name="username" autocomplete="name">
名前 | 内容 |
---|---|
name | 姓名 |
honorific-prefix | 接頭辞や敬称 ("Mr."、"Ms."など) |
given-name | 名(ファーストネーム) |
additional-name | ミドルネーム |
family-name | 姓(ファミリーネーム、ラストネーム) |
honorific-suffix | 接尾辞や敬称("Jr."、"II"など) |
nickname | ペンネームやハンドルネーム |
username | ユーザー名またはアカウント名 |
住所 | 内容 |
---|---|
street-address | 住所 複数行のテキストが使用できる 市町村名、郵便番号、国名は含めない |
address-line1 | 番地・マンション名(1行目) street-address" が存在する場合のみ使用可能 |
address-line2 | 番地・マンション名(2行目) street-address" が存在する場合のみ使用可能 |
address-line3 | 番地・マンション名(3行目) street-address" が存在する場合のみ使用可能 |
address-level4 | 第4管理水準 |
address-level3 | 第3管理水準 |
address-level2 | 第2管理水準 市町村名 |
address-level1 | 第1管理水準 都道府県名(アメリカでは州名) |
country | 国コード |
country-name | 国名 |
postal-code | 郵便番号(アメリカではZIPコード) |
組織 | 内容 |
---|---|
organization-title | 職名や組織内の肩書 |
organization | 企業名や団体名 |
言語 | 内容 |
---|---|
language | 優先言語 |
生年月日 | 内容 |
---|---|
bday | 生年月日の全体 |
bday-day | 生年月日の日 |
bday-month | 生年月日の月 |
bday-year | 生年月日の年 |
性別 | 内容 |
---|---|
sex | 性別 |
電話番号 | 内容 |
---|---|
tel | 国番号を含む、完全な電話番号 |
tel-country-code | 国コード |
tel-national | 国番号以外の電話番号全体(市外局番の接頭辞を含む) |
tel-area-code | 市外局番(必要な場合市外局番の接頭辞を含む) |
tel-local | 国番号や市外局番を含まない電話番号(市内局番+加入者番号) |
tel-local-prefix | 市内局番 |
tel-local-suffix | 加入者番号 |
tel-extension | 内線番号 |
web、メッセージング | 内容 |
---|---|
メールアドレス | |
impp | インスタントメッセージのアドレス |
url | URL |
photo | 画像のURL |
パスワード | 内容 |
---|---|
new-password | 新しいパスワード |
current-password | 現在のパスワード |
one-time-code | ワンタイムコード |
支払い手段 | 内容 |
---|---|
cc-name | 氏名の全体 |
cc-given-name | 名(ファーストネーム) |
cc-additional-name | ミドルネーム |
cc-family-name | 姓(ファミリーネーム、ラストネーム) |
cc-number | クレジットカード番号、口座番号など |
cc-exp | 有効期限( "MM/YY" や、"MM/YYYY" の形) |
cc-exp-month | 有効期限の月 |
cc-exp-year | 有効期限の年 |
cc-csc | セキュリティコード |
cc-type | 種類("Visa"や、"Master Card") |
通貨 | 内容 |
---|---|
transaction-currency | 決済に使う通貨 |
transaction-amount | 決済する金額 |
pattern属性
正規表現で入力値のパターンを指定します。
ルールに沿わない状態で、送信ボタンを押すとエラーメッセージが出ます。
(自由に入力できる系のみ)
<form action="sample.php">
<p>半角英数で入力してください</p>
<input type="text" name="userid" pattern="^[0-9A-Za-z]+$">
<input type="submit" value="送信">
</form>
placeholder属性
入力欄に初期表示する内容を指定します。
<input type="search" name="searchword" placeholder="キーワードを入力">
readonly属性
ユーザーによるテキスト編集を不可にして読み取り専用にします。
<input readonly type="text" value="読取専用">
required属性
入力必須にします。
未入力のまま「送信」を押すとエラーメッセージが出ます。
<form action="sample.php">
<p>入力必須です。</p>
<input type="text" name="yourname" required>
<input type="submit" value="送信">
</form>
disabled属性
<input disabled type="text" value="変更不可">
accept属性
type=fileでアップロードできるファイルの種類を指定します。
<input type="file" accept="image/png, image/jpeg">
ファイルタイプ | 記述 |
---|---|
text/html | HTML |
text/xml | XML |
text/css | CSS |
text/plain | テキスト |
text/csv | CSV |
image/png | PNG |
image/jpeg | JPEG |
image/gif | GIF |
audio/mpeg | MP3 |
video/mpeg | MPEG |
video/mp4 | MP4 |
application/pdf |
multiple属性
emailとfileで複数の項目を選択します。
fileの場合はアップロードする時に複数のファイルを一括選択してアップロードできます。
<input multiple="multiple" type="file">
step属性
numberやrangeで数値を刻みます。
(数値や日付系のみ)
<input type="range" step="20" min="0" max="100">
max属性
最大値を指定します。
(数値や日付系のみ)
min属性
最小値を指定します。
(数値や日付系のみ)
autofocus属性
フォームの先頭の項目などにつけておくと、最初の入力欄をクリック(タップ)する手間が省けます。
1つ目の項目は入力しやすい項目にしておきます。
<label>入力1:</label>
<input type="text">
<label>入力2:</label>
<input type="text" autofocus>
novalidate属性
ブラウザに標準で付いているバリデート機能をオフにします。
<form name="myForm" action="example.php" method="POST" enctype="multipart/form-data" autocomplete="off" novalidate>
</form>