form 要素
入力・送信フォームを作る際に使用する。入力コントロールを配置して、閲覧者が入力した情報などをサーバに送信する。
form 要素は、入力・送信フォームを作る際に使用します。 <form>~</form>の間に、 input 要素、select 要素、textarea 要素等のタグで、 一行テキストボックス・サブミットボタン・ラジオボタン・チェックボックス・セレクトボックス・テキストボックス等のフォーム部品を配置します。
フォームに入力されたデータは、送信ボタンを押すことでウェブサーバーへ送信されます。その際の送信先 URI は action 属性で、データの送信方法は method 属性で、送信するデータの形式は enctype 属性でそれぞれ指定します。
入力・送信フォームを作る際に使用する。入力コントロールを配置して、閲覧者が入力した情報などをサーバに送信する。
action 属性は、送信先 URI を指定する際に使用します。サーバ側でデータを受け取るプログラムを指定するのが通常です。
ただし、input 要素や button 要素で作成されるサブミットボタンに formaction 属性が指定されている場合には、formaction 属性の値が優先されます。
<form action="/register"> ~ </form>
method 属性は、データの送信方法(HTTPメソッド)を指定する際に指定します。 method 属性の値として指定できるのは以下の2種類です。
| 属性値 | 説明 |
| get | 送信内容が URI として渡される(規定値) |
| post | 本文(本体)として送信される |
method="get" を指定すると送信内容が URI として渡されます。フォーム入力された内容は、action 属性で指定した URI の後ろにクエスチョンマーク( ? )を付けて、それ以降続くにクエリとして送信先ページに渡されます。そのため、入力内容は URI にそのまま表示されます。一般的なブラウザでは URI の長さに制限があるため、長すぎるデータは途中で切れてしまうので注意が必要です。短めのキーワードや番号などを送信するのに適した送信方法であり、長い文章などを送信するのには向いていません。
method="post" を指定すると URI の後ろに付くクエリとしてではなく、送信内容自体が本文(本体)として送信されます。入力内容が URI に表示されることはなく、かなり長い文章も送信することができます。
ただし、input 要素や button 要素で作成されるサブミットボタンに formmethod 属性が指定されている場合には、formmethod 属性の値が優先されます。
<form action="/register" method="post"> ~ </form>
enctype 属性は、送信するデータの形式を指定する際に指定します。enctype 属性の値として指定できるのは以下の3種類です。どのような形式のデータを送信するかによって、値を使い分けます。
| 属性値 | 説明 |
| application/x-www-form-urlencoded | 全ての文字を URL エンコードする(複数の「フィールド名=入力内容」を & でつないだ形式のデータ)(規定値) |
| multipart/form-data | マルチパート(ファイルを送信する場合) |
| text/plain | プレーンテキストのみ(ただし、スペースだけ「+」記号に変換する) |
<form action="/register" method="post" enctype="application/x-www-form-urlencoded"> ~ </form>
accept-charset 属性は、送信されるデータの文字エンコーディングを指定する際に使用します。多くの場合、文字エンコーディングを指定しなくてもサーバー側で自動判別されるようですが、文字化けが起きる場合には accept-charset 属性を指定することで回避できるかもしれません。
日本語の文字エンコーディングの値としては、"UTF-8"、"Shift_JIS"、"EUC-JP"などが挙げられます。また、複数の文字エンコーディングの候補を半角スペースで区切って指定することもできます。なお、大文字と小文字は区別されません。
<form action="/register" method="post" accept-charset="UTF-8"> ~ </form>
name 属性は、フォームに固有の名前をつけます。複数のフォームがあるとき、各フォームに名前をつけていれば、Javascript などで操作したいフォームをコントロールできます。
<form action="/register" method="post" name="form1"> ~ </form>
autocomplete 属性は、オートコンプリート(入力欄の自動補完)を有効にするかどうかを指定する際に使用します。
<form action="/register" method="post" autocomplete="off"> ~ </form>
novalidate 属性は、入力されたデータのバリデーション(妥当性チェック)をしないようにする際に使用します。input 要素の type 属性で、email や、url などの属性値を指定することができますが、これらの属性値に対応したブラウザでは、Eメールや URI として妥当ではない内容が入力された場合には バリデーション機能が働いてデータが送信されません。しかし、novalidate 属性を指定すると、このバリデーション機能が無効になります。
<form action="/register" method="post" novalidate> <input type="email"> ~ </form>
target 属性は、フォーム送信するターゲット先を指定します。
<form action="/register" method="post" target="_top"> ~ </form>
fieldset 要素は、フォームの入力項目をグループ化する際に使用します。input 要素・select 要素・textarea 要素等のフォーム部品がグループ化され、一般的なブラウザではボーダーで囲まれて表示されます。
<form> <fieldset> <input type="text" name="param1"><br> <input type="text" name="param2"><br> <input type="submit" value="送信"> </fieldset> </form>
name 属性は、固有の名前をつけます。Javascript などで操作するときに参照します。
<form> <fieldset name="set1"> ~ </fieldset> </form>
form 属性は、fieldset 要素を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。
この属性の値には、対応する form 要素に指定した ID 名を記述します。
<fieldset form="form1"> <input type="text" name="param1"><br> <input type="text" name="param2"><br> <input type="submit" value="送信"> </fieldset> <form id="form1"> </form>
disabled 属性は、グループ単位でフォーム部品を無効にすることができます。ただし、legend 要素内に配置された部品は無効化されません。
<form> <fieldset disabled> <input type="text" name="param1"><br> <input type="text" name="param2"><br> <input type="submit" value="送信"> </fieldset> </form>
legend 要素は、部品グループのキャプション(タイトルや説明)を表します。この要素は、fieldset 要素の子要素として使用します。
fieldset 要素にキャプションを付けたい場合に、fieldset 要素内の先頭に legend 要素を配置します。
グループ化したフォーム部品にキャプションを付けることができる。
なし
<form> <fieldset> <legend>キャプション</legend> <input type="text" name="param1"><br> <input type="text" name="param2"><br> <input type="submit" value="送信"> </fieldset> </form>
label 要素は、フォーム部品のラベルを表します。この要素を使用することで、フォーム部品とラベルを関連付けることができます。
フォーム部品にラベルを付けることによって、フォーム部品とラベルを関連付けることができる。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| for | ID名 | 関連付けるフォーム部品のID名 | × |
| form | ID名 | 関連付ける form 要素に指定したID名 | × |
<form> <fieldset> <legend>個人情報</legend> <label>氏名:<input type="text" name="name"></label><br> 性別:<label><input type="radio" name="gender" value="male">男性</label> <label><input type="radio" name="gender" value="female">女性</label><br> <input type="submit" value="送信"> </fieldset> </form>
label 要素で関連付けを行ったことにより、「氏名:」「男性」「女性」のラベル部分をクリックしても、その部品を選択できるようになります。
上記のようにフォーム部品とラベルが隣接している場合は、両方を一つの label 要素に入れる方が簡単ですが、離れている場合は for 属性にフォーム部品の ID 名を指定します。
<form> <fieldset> <legend>個人情報</legend> <dl> <dt><label for="name">氏名</label></dt> <dd><input type="text" name="name" id="name"></dd> </dl> <input type="submit" value="送信"> </fieldset> </form>
input 要素は、フォーム部品の種類を指定する際に使用します。 input 要素は、type 属性にどのような値を指定するかによって、一行テキストボックス、チェックボックス、ラジオボタン、送信ボタン、リセットボタン等、フォーム部品の種類を指定し分けることができます。type 属性の規定値は、type="text"(一行テキストボックス)です。
フォーム部品の種類を指定する際に使用する。type 属性によって、いろいろな形式の入力欄を作成できる。
属性は、type 属性によらず次のような指定できる。それ以外にさらに type 属性ごとに指定できる属性もある。
type 属性は、フォーム部品のタイプを指定します。type 属性の属性値に入力コントロールの種別を与えることで、様々な入力コントロールを表示させることができます。
一行テキスト入力欄を作成します(規定値)。
type="text"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
一行テキスト入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
<form action="#"> コード:<input type="text" name="param1" size="30" pattern="^[0-9A-Za-z]+$" placeholder="英数字"> エリア:<input type="text" name="param2" list="arealist"> <input type="submit" value="送信"> </form> <datalist id="arealist"> <option value="13">東京都</option> <option value="14">神奈川県</option> <option value="11">埼玉県</option> <option value="12">千葉県</option> </datalist>
「コード」は、英数字以外を入れると、「送信」ボタンをクリックしたときにエラーになります。
「エリア」はプリダウン表示されるリストから選択できますが、送信されるデータは value 属性で指定された値です。なお、value 属性で指定された値以外を入力することもできます。
リストは、では、マウスを入力欄内に入れると入力欄の右側に ▼ が表示されますので、入力欄をクリックするとリストが表示されます。は、▼ が表示されない上に、何も入れられていないときに入力欄を2回クリックする必要があります。
パスワード入力欄を作成します。
パスワード入力欄に入力されたテキストは、ブラウザ上ではアスタリスクなど(●や*)に置き換えられて表示されます。 ただし、入力されたデータが暗号化されて送信されるわけではなく、 送信されたデータを受け取ることができれば内容を見ることができます。 利用の際には注意してください。
type="password"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
パスワード入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
<form> パスワード:<input type="password" name="param" size="30"> <input type="submit" value="送信"> </form>
電話番号入力欄を作成します。
スマートフォンなどでは電話番号入力用のテンキーが表示されます。ただし、妥当な電話番号といっても実際にはその形式は様々なので、特に入力形式が強制されてはいません。
type="tel"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
電話番号入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
<form action="#"> 電話番号:<input type="tel" name="param" size="12" autocomplete="off" pattern="^[0-9]{9,11}$"> <input type="submit" value="送信"> </form>
この例では、pattern 属性を指定し9~11文字の数字に制限しています。
URL の入力欄を作成します。
HTTP: や HTTPS:(小文字でも可)で始まらないとバリデーションが働きます(エラーになります)。ただし、type="url" を指定しておけば、必ずユーザーに正確な URL を記入してもらえるというわけではないので、pattern 属性を指定するなど、使用の際には注意が必要です。
type="url"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
URL 入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
<form> URL:<input type="url" name="param" size="60" pattern="https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"> <input type="submit" value="送信"> </form>
この例では、pattern 属性を指定し URL の形式に制限しています。なお、: や / は、%nn に変換されます。
メールアドレスの入力欄を作成します。
アットマーク( @ )を含む妥当なメールアドレスでは無い場合にバリデーションが働きます(エラーになります)。ただし、type="email" を指定しておけば、必ずユーザーに正確なメールアドレスを記入してもらえるというわけではないので、pattern 属性を指定するなど、使用の際には注意が必要です。
type="email"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
URL 入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
| multiple | 論理値 | カンマ( , )区切りで複数の値が入力可 | × |
<form> URL:<input type="email" name="param" size="60" pattern="[\w\d_-]+@[\w\d_-]+\.[\w\d._-]+"> <input type="submit" value="送信"> </form>
この例では、pattern 属性を指定しメールアドレスの形式に制限しています。
検索テキスト入力欄を作成します。
type="search"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
検索文字列の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| pattern | ID名 | 入力値の正規表現パターン 正規表現一覧 | × |
| placeholder | 文字列 | 入力のヒント | × |
| dirname | 文字列 | 書字方向の送信に使う名前 | × |
| required | 論理値 | 入力必須 | × |
<form> 検索文字列:<input type="search" name="param" size="30"> <input type="submit" value="送信"> </form>
UTC(協定世界時)による日時の入力欄を作成します。
UTC はセシウム原子時計が刻む国際原子時をもとに決定されています。日本のローカル時刻は UTC に対して 9時間進んでいるので、以下の書式でグローバル日時として指定します。
type="datetime"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
UTC(協定世界時)による日付の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 日時 | 入力できる最大値(yyyy-mm-ddThh:mm:ssTZD) (TZD:UTCとの時差、日本の場合は +9:00) | × |
| min | 日時 | 入力できる最小値(yyyy-mm-ddThh:mm:ssTZD) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は秒)(規定値:60) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 日時:<input type="datetime" name="param" min="2019-04-01T9:00:00+09:00" max="2019-05-31T18:00:00+09:00" step="60"> <input type="submit" value="送信"> </form>
この例では、min や max 属性を指定し入力できる日時を制限しています。
| type="text" と変わらない 日時も制限していない |
範囲内でしか変更できないが、直接の入力では範囲外も送信できる |
ローカル日時の入力欄を作成します。
type="datetime-local"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
ローカル日時の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 日時 | 入力できる最大値(yyyy-mm-ddThh:mm:ss) | × |
| min | 日時 | 入力できる最小値(yyyy-mm-ddThh:mm:ss) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は秒)(規定値:60) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 日時:<input type="datetime-local" name="param" min="2019-04-01T9:00:00" max="2019-05-31T18:00:00" step="60"> <input type="submit" value="送信"> </form>
この例では、min や max 属性を指定し入力できる日時を制限しています。また、: は %3A に置き換えられています。
| type="text" と変わらない 日時も制限していない |
![]() |
![]() |
![]() |
![]() |
![]() |
日付の入力欄を作成します。
type="date"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
日付の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 日付 | 入力できる最大値(yyyy-mm-dd) | × |
| min | 日付 | 入力できる最小値(yyyy-mm-dd) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は日)(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 日付:<input type="date" name="param" min="2019-04-01" max="2019-05-31" step="7"> <input type="submit" value="送信"> </form>
この例では、min、max や step属性を指定し入力できる日付(4月1日から7日ごと)を制限しています。
| type="text" と変わらない 日付も制限していない |
![]() |
![]() |
![]() |
![]() |
![]() |
年月の入力欄を作成します。
type="month"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
年月の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 年月 | 入力できる最大値(yyyy-mm) | × |
| min | 年月 | 入力できる最小値(yyyy-mm) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は月)(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 年月:<input type="month" name="param" min="2019-04" max="2019-10"> <input type="submit" value="送信"> </form>
この例では、min や max 属性を指定し入力できる年月を制限しています。
| type="text" と変わらない 日付も制限していない |
![]() | ![]() |
![]() |
type="text" と変わらない 日付も制限していない |
![]() |
年週の入力欄を作成します。週は、月曜日から日曜日までの週を 01 とした二桁の週番号で指定します。
type="week"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
年月の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 年月 | 入力できる最大値(yyyy-Wnn) | × |
| min | 年月 | 入力できる最小値(yyyy-Wnn) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は週)(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 年週:<input type="week" name="param" min="2019-W20" max="2019-W42"> <input type="submit" value="送信"> </form>
この例では、min や max 属性を指定し入力できる週を制限しています。
| type="text" と変わらない 日付も制限していない |
![]() |
![]() |
![]() |
type="text" と変わらない 日付も制限していない |
![]() |
時刻の入力欄を作成します。
type="time"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
時刻の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 時刻 | 入力できる最大値(hh:mm:ss) | × |
| min | 時刻 | 入力できる最小値(hh:mm:ss) | × |
| step | 整数 | 入力欄で刻むステップ値(単位は秒)(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 時刻:<input type="time" name="param" min="10:00:00" max="21:00:00" step="30"> <input type="submit" value="送信"> </form>
この例では、min、max や step 属性を指定し入力できる時刻を制限しています。また、: は %3A に置き換えられています。
| type="text" と変わらない 時刻も制限していない |
![]() |
![]() |
![]() |
![]() 入力可能な時刻しか入力できない |
![]() |
数値の入力欄を作成します。
type="number"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
数値の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| size | 整数 | 入力欄の幅 | × |
| maxlength | 整数 | 入力できる最大文字数 | × |
| max | 整数 | 入力できる最大値 | × |
| min | 整数 | 入力できる最小値 | × |
| step | 整数 | 入力欄で刻むステップ値(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 数値:<input type="number" name="param" size="3" min="0" max="100"> <input type="submit" value="送信"> </form>
この例では、min や max 属性を指定し入力できる数値を制限しています。
![]() 送信ボタンを押してからエラーチェックされる ただし、先頭から続く数字のみチェックする また、数字に続く文字も送信される |
![]() 送信ボタンを押してからエラーチェックされる |
![]() 送信ボタンを押してからエラーチェックされる また、数字、符号、e E(指数)以外は入力できない |
![]() 送信ボタンを押してからエラーチェックされる また、数字、符号、e E(指数)以外は入力できない |
![]() 入力時にエラーチェックされる また、数字、-、e E(指数)以外は入力できない |
![]() 送信ボタンを押してからエラーチェックされる また、数字、符号、e E(指数)以外は入力できない |
![]() 送信ボタンを押してからエラーチェックされる また、数字、符号、e E(指数)以外は入力できない |
![]() 範囲内でしか変更できないが、直接の入力では範囲外も送信できる また、数字に続く文字は送信されない |
レンジ入力欄を作成します。
レンジ入力では、正確な数値は重要ではなく、ユーザーはどの程度なのかを感覚的に指定することができます。初期値は、最大値と最小値の平均値になります。
type="range"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
レンジ入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| max | 整数 | 入力できる最大値(規定値:100) | × |
| min | 整数 | 入力できる最小値(規定値:0) | × |
| step | 整数 | 入力欄で刻むステップ値(規定値:1) | × |
| readonly | 論理値 | 読み取り専用 | × |
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 数値:<input type="range" name="param" min="-1000" max="1000"> <input type="submit" value="送信"> </form>
![]() 選択している位置の数値が表示されます |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
色の入力欄を作成します。
常に何らかの色が選択された状態となり、空の値を指定することはできません。
type="color"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
色の入力欄を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| readonly | 論理値 | 読み取り専用 | × |
| autocomplete | オートコンプリート | × | |
| on | オートコンプリートを有効にする(規定値) | ||
| off | オートコンプリートを無効にする | ||
| list | ID名 | 入力候補のリスト | × |
| required | 論理値 | 入力必須 | × |
<form> 色:<input type="color" name="param"> <input type="submit" value="送信"> </form>
| type="text" と変わらない 色コードも制限していない |
![]() |
![]() |
![]() |
![]() ダイアログが開く |
ラジオボタンを作成します。
name 属性の属性値を同じにすることによって、複数のラジオボタンを1つのグループにすることができます。ラジオボタンは同じグループからはひとつしか選択できません。
type="radio"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
ラジオボタンを作成する。
name 属性の属性値を同じにすることによって、複数のラジオボタンを1つのグループにすることができる。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| checked | 論理値 | 初期値で選択された状態にする | × |
| required | 論理値 | 入力必須 | × |
<form> <input type="radio" name="data" value="1">選択肢1 <input type="radio" name="data" value="2" checked>選択肢2 <input type="radio" name="data" value="3">選択肢3 <input type="submit" value="送信"> </form>
チェックボックスを作成します。
type="checkbox"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
チェックボックスを作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| checked | 論理値 | 初期値で選択された状態にする | × |
| required | 論理値 | 入力必須 | × |
<form> <input type="checkbox" name="data" value="1">チェック1 <input type="checkbox" name="data" value="2">チェック2 <input type="checkbox" name="data" value="3">チェック3 <input type="submit" value="送信"> </form>
サーバーへ送信するファイルを選択できるように、ファイル名の入力フィールドと[参照]ボタンを作成します。入力フィールドや[参照]ボタンをクリックすると、ファイルを選択するウィンドウが開きます。
なお、ファイルを送信するためは、form 要素に method="post" と enctype="multipart/form-data" を指定しておく必要があります。
type="file"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
ファイルの送信欄(ファイル名の入力フィールドと[参照]ボタン)を作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| accept | MIMEタイプ(ファイルの制限) MIME タイプ一覧 | × | |
| audio/* | 音声ファイル | ||
| video/* | 動画ファイル | ||
| image/* | 画像ファイル | ||
| multiple | 論理値 | 複数指定 | × |
| required | 論理値 | 入力必須 | × |
| size | 数値 | ファイル名表示欄の幅(の場合) | × |
<form> <input type="file" name="param" accept="image/png" size="80"> <input type="submit" value="送信"> </form>
ファイル名に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
![]() |
![]() |
![]() |
![]() |
![]() |
ブラウザ上に表示されない非表示データを送信することができます。ただし、ブラウザ上には表示されませんが、HTMLソースを表示すれば見ることができるので注意してください。
type="hidden"を指定した場合、input 要素に共通な属性を指定できます。
ブラウザ上に表示されない非表示データを作成する。
<form> <input type="hidden" name="param" value="100"> <input type="submit" value="送信"> </form>
非表示なので、なにも表示されていませんが、定義はされています。
フォームの送信ボタンを作成することができます。
type="submit"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
フォームの送信ボタンを作成する。
ボタンに表示させる文字列は、value 属性で指定する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| formaction | URI | 送信先の URI(form 要素の action 属性の設定を置き換え) | × |
| formmethod | 送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え) | × | |
| get | URL の後にデータを付け加えて送信(規定値) | ||
| post | URL の後にデータを付け加えないで、ボディ部に格納して送信 | ||
| formenctype | 送信データのエンコード・タイプ(form 要素の enctype 属性の設定を置き換え) | × | |
| application/x-www-form-urlencoded | 全ての文字を URL エンコードする。(規定値) | ||
| multipart/form-data | フォームにファイルを送信する機能がある場合に指定する。 | ||
| text/plain | スペースだけ「+」記号に変換する。その他の特殊文字はエンコードしない。 | ||
| formtarget | 送信結果の表示方法(form 要素の target 属性の設定を置き換え) | × | |
| _blank | 新規のウィンドウ | ||
| _self | 現在のウィンドウ(フレーム)(規定値) | ||
| _parent | 親フレーム | ||
| _top | フレームを解除したウィンドウ全体 | ||
| ウィンドウ名、フレーム名 | 指定したウィンドウやフレーム | ||
<form> <input type="text" name="param" value="100"><br> <br> <input type="submit" value="送信"> </form>
value 属性で記述した文字列がボタンの見出しになります。
画像を使った送信ボタンを作成することができます。
type="image"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。
画像を使った送信ボタンを作成する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| src | URI | 画像ファイルの URI | ○ |
| alt | 文字列 | 画像を表示しない場合に代わりになる文字列 | ○ |
| width | ピクセル値 | 画像の幅 | × |
| height | ピクセル値 | 画像の高さ | × |
| formaction | URI | 送信先の URI(form 要素の action 属性の設定を置き換え) | × |
| formmethod | 送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え) | × | |
| get | URL の後にデータを付け加えて送信(規定値) | ||
| post | URL の後にデータを付け加えないで、ボディ部に格納して送信 | ||
| formenctype | 送信データのエンコード・タイプ(form 要素の enctype 属性の設定を置き換え) | × | |
| application/x-www-form-urlencoded | 全ての文字を URL エンコードする。(規定値) | ||
| multipart/form-data | フォームにファイルを送信する機能がある場合に指定する。 | ||
| text/plain | スペースだけ「+」記号に変換する。その他の特殊文字はエンコードしない。 | ||
| formtarget | 送信結果の表示方法(form 要素の target 属性の設定を置き換え) | × | |
| _blank | 新規のウィンドウ | ||
| _self | 現在のウィンドウ(フレーム)(規定値) | ||
| _parent | 親フレーム | ||
| _top | フレームを解除したウィンドウ全体 | ||
| ウィンドウ名、フレーム名 | 指定したウィンドウやフレーム | ||
<form> <input type="image" name="A" src="A.png" alt="エー"> <input type="image" name="B" src="B.png" alt="ビー"> <input type="image" name="C" src="C.png" alt="シー"> </form>
src 属性で記述したファイルがボタンのイメージになります。
クリックした画像上の位置 (x, y) がパラメータに含まれます。座標は左上が (0, 0) です。
パラメータ名は、ボタンの名前がついて (A.x, A.y) などとなります。ボタンに name 属性がなければ単に (x, y) となります。
リセットボタンを作成することができます。
type="reset"を指定した場合、input 要素に共通な属性を指定できます。
リセットボタンを作成する。
<form> <input type="text" name="param" value=""> <br> <input type="checkbox" name="check" value="1">チェック1 <input type="checkbox" name="check" value="2" checked>チェック2 <input type="checkbox" name="check" value="3" checked>チェック3 <br> <input type="radio" name="radio" value="1">選択肢1 <input type="radio" name="radio" value="2" checked>選択肢2 <input type="radio" name="radio" value="3">選択肢3 <br><br> <input type="submit" value="登録"> <input type="reset" value="リセット"> </form>
リセットボタンをクリックすると、それまでに入力した情報をすべてキャンセルして、最初から入力をやり直すことができます。
汎用的に使えるボタンを作成することができます。デフォルトの動作がないので、Javascript などと組み合わせて使用されることが多いようです。
type="button"を指定した場合、input 要素に共通な属性を指定できます。
汎用ボタンを作成する。
<form> <input type="button" value="赤" onclick="document.body.style.backgroundColor='red';"> <input type="button" value="青" onclick="document.body.style.backgroundColor='blue';"> <input type="button" value="黄" onclick="document.body.style.backgroundColor='yellow';"> </form>
ボタンをクリックすると、Javascript が実行されます。
input 要素や select 要素などのフォーム部品を識別するための名前を指定します。
この属性の値は、入力されたデータ(または value 属性の値)とセットで送信されることになります。
<form> 名前:<input type="text" name="name" value="Snoopy"><br> 年齢:<input type="number" name="age" value="5"><br> <input type="submit" value="送信"> </form>
name 属性の値と value 属性の値が = で連結され、データが複数あればさらに & で連結されて送られます。これにより、複数のデータを識別することができます。
例えば、上記のまま送信すれば、次のようになります。
name=Snoopy&age=5
送信される値を指定します。
この属性の値は、name 属性の値とセットで送信されることになります。ただし、部品の種類により次のような違いがあります。
<form> 入力欄:<input type="text" name="name" value="初期値"><br> 選択欄:<input type="checkbox" name="data" value="1">チェック1 <input type="checkbox" name="data" value="2">チェック2 <input type="checkbox" name="data" value="3">チェック3<br> ボタン:<input type="submit" value="送信"> </form>
name 属性の値と value 属性の値が = で連結され、データが複数あればさらに & で連結されて送られます。これにより、複数のデータを識別することができます。
フォーム部品の無効化を指定します。
この属性が指定された部品は、選択や書き換えができなくなり、データも送信されなくなります。
<form> 入力欄:<input type="text" name="param" value="初期値" disabled><br> 選択欄:<input type="checkbox" name="data" value="1">チェック1 <input type="checkbox" name="data" value="2">チェック2 <input type="checkbox" name="data" value="3" disabled>チェック3<br> ボタン:<input type="submit" value="送信"> <input type="reset" value="中止" disabled> </form>
disabled 属性が記述してあるフォーム部品はグレー表示になり、入力も選択もできなくなります。
フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。
この属性の値には、対応する form 要素に指定した ID 名を記述します。
<p>入力欄:<input type="text" name="param" value="ABC" form="form1"></p> <form id="form1"> <input type="submit" value="送信"> </form>
フォーム部品の自動フォーカスを指定します。
この属性が指定された部品は、文書の読み込み時に自動的にフォーカス(最初の入力位置に)されます。したがって、この属性を指定できる要素は、1つの文書に1つだけです。
<form> <input type="text" name="param1" value="100"> <input type="text" name="param2" value="200"> <input type="text" name="param3" value="300" autofocus> </form>
実行例をクリックしてください。別ウィンドウが開き、autofocus 属性が記述してあるフォーム部品(3番目)が最初の入力対象になります。
required 属性は、そのフォーム部品が入力必須であることを指定します。
<form> <input type="text" name="param1" required><br> <input type="number" name="param2" required> <input type="submit" value="送信"> </form>
datalist 要素は、入力候補のリストを作成します。入力候補の選択肢は、この要素内に配置する option 要素で示すことになります。ただし、選択肢以外の文字列も入力することができます。
datalist 要素は、password 以外の、テキストを入力できる type 属性を持つ input 要素で指定できます。
は、マウスを入力欄内に入れると入力欄の右側に ▼ が表示されますので、入力欄をクリックするとリストが表示されます。は、▼ が表示されない上に、何も入れられていないときに入力欄を2回クリックする必要があります。
入力候補のリストを作成する。
input 要素のテキストを入力できる type 属性(ただし、password を除く)で指定できる。
<form> 住所1:<input type="text" name="addr1" list="arealist"> 住所2:<input type="text" name="addr2" list="arealist"> <input type="submit" value="送信"> </form> <datalist id="arealist"> <option value="東京都"></option> <option value="神奈川県"></option> <option value="埼玉県"></option> <option value="静岡県"></option> </datalist>
次のように記述すると、リストに表示する文字列と実際に送信される値とを変えることができます。
<form> 都道府県コード:<input type="text" name="code" list="arealist"> <input type="submit" value="送信"> </form> <datalist id="arealist"> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </datalist>
リストから選択後に実際に表示されるのは、option 要素の value 属性で指定した値です。
また、リストから選ぶだけではなく value 値を直接入力することもできます。入力する都度リストには候補のみが表示されます。例えば、 2 と入力するとリストは 静岡県 だけになります。ただし、 は対応していません。
option 要素では、<option>~</option> の間に記述することによっても、リストに表示する文字列を指定することができます。
しかし、この指定方法だと datalist 要素に対応していないブラウザで表示した場合、リストとして表示すべき文字列が最初から表示されてしまいますので、このように記述すべきではありません。
<form> 都道府県コード:<input type="text" name="code" list="arealist"> <input type="submit" value="送信"> </form> <datalist id="arealist"> <option value="13">東京都</option> <option value="14">神奈川県</option> <option value="11">埼玉県</option> <option value="22">静岡県</option> </datalist>
option 要素は、プルダウンメニューの選択肢、または入力候補リストの選択肢を作成します。この要素は、select 要素、optgroup 要素、datalist 要素の子要素として使用します。
<form action="#"> 商品コード:<input type="text" name="code" list="codelist"> <input type="submit" value="送信"> </form> <datalist id="codelist"> <option value="A-" label="タイプ A"></option> <option value="B-" label="タイプ B"></option> <option value="C-" label="タイプ C" disabled></option> <option value="D-" label="タイプ D"></option> </datalist>
label 属性が記述されていますので、リストには value 属性ではなく label 属性の文字列が表示されます。(では、value 属性も表示されますし、さらに、ではそれまでに入力された文字列も表示されます。)
ただし、リストから選択したときに入力欄に表示されるのは value 属性の文字列です。
また、「タイプ C」の商品は disabled 属性を付加しているので、リストに表示されません。
select 要素は、プルダウンメニューを作成します。メニューの選択肢は、この要素内に配置する option 要素で示すことになります。
datalist 要素を指定した input 要素の場合と異なり、選択肢以外を入力することはできません。
select 要素は、プルダウンメニューを作成する。メニューの選択肢は、この要素内に配置する option 要素で示すことになる。
select 要素などのフォーム部品を識別するための名前を指定します。
この属性の値は、入力されたデータ(または value 属性の値)とセットで送信されることになります。
<form> 都道府県コード: <select name="code"> <option value="" label=""></option> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> <input type="submit" value="送信"> </form>
この例では、code=?? という形式で選択した値が送られます。
size 属性は、表示される選択肢の数を指定します。
この属性の初期値は、multiple 属性が指定されている場合は 4、指定されていない場合は 1 になります。
<form> 都道府県コード: <select name="code" size="3"> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> <input type="submit" value="送信"> </form>
size 属性が 3 と指定されていますので、選択肢が3行分表示されています。
multiple 属性は、複数の選択が可能であることを指定します。
<form> 都道府県コード: <select name="code" size="3" multiple> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> <input type="submit" value="送信"> </form>
multiple 属性が指定されていますので、複数を選択できます。Windows の場合は、シフトキーやコントロールキーと組み合わせてクリックします。
disabled 属性は、フォーム部品の無効化を指定します。
<form> 都道府県コード: <select name="code" disabled> <option value="" label=""></option> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> <input type="submit" value="送信"> </form>
select 要素には、disabled 属性が指定されていますので、選択できないようにグレー表示されます。
form 属性は、フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。
この属性の値には、対応する form 要素に指定した ID 名を記述します。
都道府県コード: <select name="code" form="form1"> <option value="" label=""></option> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> <form id="form1"> <input type="submit" value="送信"> </form>
autofocus 属性は、フォーム部品の自動フォーカスを指定します。
この属性が指定された部品は、文書の読み込み時に自動的にフォーカス(最初の入力位置に)されます。したがって、この属性を指定できる要素は、1つの文書に1つだけです。
<form> 数量:<input type="number" name="count" value="100"> 都道府県コード: <select name="code" autofocus> <option value="13" label="東京都"></option> <option value="14" label="神奈川県"></option> <option value="11" label="埼玉県"></option> <option value="22" label="静岡県"></option> </select> </form>
実行例をクリックしてください。別ウィンドウが開き、autofocus 属性が記述してあるフォーム部品(2番目)が最初の入力対象になります。
required 属性は、そのフォーム部品が入力必須であることを指定します。
<form> 都道府県コード: <select name="code" required> <option value=""></option> <option value="13">東京都</option> <option value="14">神奈川県</option> <option value="11">埼玉県</option> <option value="22">静岡県</option> </select> <input type="submit" value="送信"> </form>
この例では、2番目以降の選択肢(空でない選択肢)を選択する必要があります。
option 要素は、プルダウンメニューの選択肢、または入力候補リストの選択肢を作成します。この要素は、select 要素、optgroup 要素、datalist 要素の子要素として使用します。
次のような2つの記述方法があります。どちらも「ラベル」が選択肢として表示され、選択した項目の「値」が送られます。ただし、(1) の方が古い形だと思われるので、今後は (2) の形式で記述する方がよいでしょう。
<option value="値">ラベル</option> … (1) <option value="値" label="ラベル"></option> … (2)
select 要素では、option 要素を <select>~</select> の間に次のように記述します。
<form> 商品コード:<select name="code"> <option value="" label=""></option> <option value="A002" label="タイプ A"></option> <option value="B001" label="タイプ B"></option> <option value="C001" label="タイプ C" disabled></option> <option value="D003" label="タイプ D"></option> </select> <input type="submit" value="送信"> </form>
上記の例では、「タイプ C」の商品は disabled 属性を付加しているので、選択できないようにグレー表示されています。
selected 属性を指定することによって、初期値を設定することもできます。selected 属性を指定しなければ、先頭の項目が表示されます。
<form action="#"> 商品コード:<select name="code"> <option value="A002" label="タイプ A"></option> <option value="B001" label="タイプ B"></option> <option value="C001" label="タイプ C" disabled></option> <option value="D003" label="タイプ D" selected></option> </select> <input type="submit" value="送信"> </form>
「タイプ D」に selected 属性を付加しているので、あらかじめ選択された状態で表示されます。
optgroup 要素は、option 要素で作成する選択肢をグループ化する際に使用します。
label 属性は、選択肢グループにラベル(項目名)を付ける属性で、必ず指定する必要があります。
disabled 属性は、option 要素で作成する選択肢をグループごと無効にする場合に使用します。
プルダウンメニューの選択肢をグループ化する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| label | 文字列 | 選択肢グループのラベル | ○ |
| disabled | 論理値 | 選択肢グループの無効化 | × |
<form> 商品コード:<select name="code"> <option value="" label=""></option> <optgroup label="旧製品" disabled> <option value="A002" label="タイプ A"></option> <option value="B001" label="タイプ B"></option> <option value="C001" label="タイプ C"></option> </optgroup> <optgroup label="新製品"> <option value="D003" label="タイプ D"></option> <option value="E002" label="タイプ E"></option> </optgroup> </select> <input type="submit" value="送信"> </form>
一つ目の optgroup 要素に disable 属性を付加しているので、グループ全体が選択できないようにグレー表示されています。
textarea 要素は、複数行のテキスト入力欄を作成します。
入力欄の初期値を表示するには、<textarea>~</textarea> の間に書きます。
入力欄は、指定しなければ一行当たり 20 文字で 2 行の大きさになります。
textarea 要素は、複数行のテキスト入力欄を作成する。入力欄の初期値は、<textarea>~</textarea> の間に書く。
select 要素などのフォーム部品を識別するための名前を指定します。
この属性の値は、入力されたデータ(または value 属性の値)とセットで送信されることになります。
<form> ご意見をお聞かせください<br> <textarea name="comment">なし</textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
cols 属性は、一行当たりの最大文字数の目安を指定する際に使用します。既定値は 20 です。
rows 属性は、表示行数を指定する際に使用します。既定値は 2 です。
<form> ご意見をお聞かせください<br> <textarea name="comment" cols="40" rows="3">なし</textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
そのフォーム部品が読み取り専用であることを指定します。
書き換えはできませんが、選択することは可能でデータも送信されます。
<form> ご意見をお聞かせください<br> <textarea name="comment" readonly>なし</textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
そのフォーム部品の無効化を指定します。
グレー表示名なり、選択することできなくなり、データも送信されません。
<form> ご意見をお聞かせください<br> <textarea name="comment" disabled>なし</textarea> <input type="submit" value="送信"> </form>
入力できる最大文字数を指定します。半角でも全角でも 1文字と見なします。
<form> ご意見をお聞かせください<br> <textarea name="comment" maxlength="30">なし</textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
入力テキストの折り返し部分を、送信データに反映させるかどうかを指定します。指定できる値は次の2つです。
soft :折り返しを反映せずに送信します。(初期値)
hard :折り返し部分に改行を入れて送信します。
<form action="#"> <textarea name="comment" cols="10" wrap="soft"> ABCDEFGHIJKLMNOPQRST</textarea> <input type="submit" value="送信"> </form> |
<form action="#"> <textarea name="comment" cols="10" wrap="hard"> ABCDEFGHIJKLMNOPQRST</textarea> <input type="submit" value="送信"> </form> |
左側は wrap="soft" なので改行コードは入りませんが、右側は wrap="hard" なので改行コードが入ります。
|
表示例 wrap="soft"
|
表示例 wrap="hard"
|
form 属性は、フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。
この属性の値には、対応する form 要素に指定した ID 名を記述します。
<textarea name="comment" form="form1">なし</textarea> <form id="form1"> <input type="submit" value="送信"> </form>
autofocus 属性は、フォーム部品の自動フォーカスを指定します。
この属性が指定された部品は、文書の読み込み時に自動的にフォーカス(最初の入力位置に)されます。したがって、この属性を指定できる要素は、1つの文書に1つだけです。
<form> 数量:<input type="number" name="count" value="1"><br> ご意見をお聞かせください<br> <textarea name="comment" autofocus>なし</textarea> </form>
実行例をクリックしてください。別ウィンドウが開き、autofocus 属性が記述してあるフォーム部品(2番目)が最初の入力対象になります。
入力の助けとなるような短いヒント(記入例やフォーマットの例など)を指定します。
入力欄の初期値を表示する方法として、<textarea>~</textarea> の間に書く方法と、placeholder 属性で指定する方法があります。前者はあらかじめ入力されている文字列で、変更しなければこのまま送信されます。それに対して、後者はヒントであり、textarea 要素にカーソルを移動させると消え、その内容は送信されません。
両方指定した場合は、一般的なブラウザでは前者が優先されます。
<form> <textarea name="comment" placeholder="ご意見をお聞かせください"></textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
書字方向の送信に使う名前を指定します。
ここで指定した名前が、入力内容の書字方向(ltr または rtl)とセットで送信されることになります(例えば、dir=ltr)。
書字方向は自動的に判別されるようです。
<form> ご意見をお聞かせください<br> <textarea name="comment" dirname="dir">なし</textarea> <input type="submit" value="送信"> </form>
入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。
required 属性は、そのフォーム部品が入力必須であることを指定します。
<form> ご意見をお聞かせください<br> <textarea name="comment" required></textarea> <input type="submit" value="送信"> </form>
何も入力しないで、「送信」ボタンをクリックするとエラーになります。
button 要素は、3タイプのボタン(送信ボタン、リセットボタン、汎用ボタン)を作成します。
ボタンのタイトルは <button>~</button> の間に記述しますので、単なる文字列だけでなく、画像や強調文字などを表示することもできます。
ボタンを作成する際に使用する。type 属性によって、いろいろなボタンを作成できる。
属性は、type 属性によらず次のような指定できる。それ以外にさらに type 属性ごとに指定できる属性もある。
ボタンに表示するテキスト(タイトル)は <button>~</button> の間に記述する。
type 属性は、ボタンのタイプを指定します。type 属性の値にボタンの種別を与えることで、いろいろなボタンを表示させることができます。
送信ボタンを作成します。
ボタンに表示するテキスト(タイトル)は <button>~</button> の間に記述します。
type="submit"を指定した場合、button 要素に共通な属性に加え、次のような属性を指定できます。
フォームの送信ボタンを作成する。
ボタンに表示させる文字列は、<button>~</button> の間に記述する。
| 属性名 | 属性値 | 説明 | 必須 |
|---|---|---|---|
| formaction | URI | 送信先の URI(form 要素の action 属性の設定を置き換え) | × |
| formmethod | 送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え) | × | |
| get | URL の後にデータを付け加えて送信(規定値) | ||
| post | URL の後にデータを付け加えないで、ボディ部に格納して送信 | ||
| formenctype | 送信データのエンコード・タイプ(form 要素の enctype 属性の設定を置き換え) | × | |
| application/x-www-form-urlencoded | 全ての文字を URL エンコードする。(規定値) | ||
| multipart/form-data | フォームにファイルを送信する機能がある場合に指定する。 | ||
| text/plain | スペースだけ「+」記号に変換する。その他の特殊文字はエンコードしない。 | ||
| formtarget | 送信結果の表示方法(form 要素の target 属性の設定を置き換え) | × | |
| _blank | 新規のウィンドウ | ||
| _self | 現在のウィンドウ(フレーム)(規定値) | ||
| _parent | 親フレーム | ||
| _top | フレームを解除したウィンドウ全体 | ||
| ウィンドウ名、フレーム名 | 指定したウィンドウやフレーム | ||
<form> コード:<input type="text" name="param" value="A001"> <button type="submit" name="button" value="1">追加</button> <button type="submit" name="button" value="2">削除</button> </form>
button の値によってどちらのボタンがクリックされたかがわかります。
リセットボタンを作成します。
<form> コード:<input type="text" name="param" value="A001"> <button type="reset"><ruby>初期化<rt>リセット</rt></ruby></button> </form>
入力欄に何を入れてもリセットボタンをクリックすると、初期値(この例では、A001)に戻ります。
汎用的なボタンを作成します。ただし、何の機能も持たないので通常は Javascript などが実行されるようにします。
<script> function answer(val) { document.getElementById("value").innerHTML = val; } </script> クリックしてください。<br> <form> <button type="button" value="A" onclick="answer(this.value);"><img src="A.png"></button> <button type="button" value="B" onclick="answer(this.value);"><img src="B.png"></button> <button type="button" value="C" onclick="answer(this.value);"><img src="C.png"></button> </form> <p>クリックしたボタン:<span id="value"></span></p>
フォーム部品を識別するための名前を指定します。
<form> <button type="submit" name="append">追加</button> <button type="submit" name="remove">削除</button> </form>
name 属性の値と value 属性の値が = で連結されて送られます。ただし、この例では value 属性がないので = の右側には何もありません。
送信される値を指定します。
この属性の値は、name 属性の値と = で連結されてセットで送信されることになります。
<form> <button type="submit" name="button" value="append">追加</button> <button type="submit" name="button" value="remove">削除</button> </form>
name 属性の値と value 属性の値が = で連結されて送られます。
フォーム部品の無効化を指定します。
この属性が指定された button 要素は、選択できなくなり、データも送信されなくなります。
<form> <button type="submit" name="button" value="append">追加</button> <button type="submit" name="button" value="remove" disabled>削除</button> </form>
disabled 属性が記述してある button 要素はグレー表示になり、選択できなくなります。
フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。
この属性の値には、対応する form 要素に指定した ID 名を記述します。
<button type="submit" name="button" value="append" form="form1">追加</button> <button type="submit" name="button" value="remove" form="form1">削除</button> <form id="form1"> </form>
フォーム部品の自動フォーカスを指定します。
この属性が指定された部品は、文書の読み込み時に自動的にフォーカス(最初の入力位置に)されます。したがって、この属性を指定できる要素は、1つの文書に1つだけです。
<form> <button type="submit" name="button" value="append">追加</button> <button type="submit" name="button" value="remove" autofocus>削除</button> </form>
実行例をクリックしてください。別ウィンドウが開き、autofocus 属性が記述してある「削除」ボタンが最初から選択状態になります。
計算結果を示す際に使用します。ただし、自動的に計算結果が表示されるわけではありません。Javascript などで計算し、output 要素に入れる必要があります。
また、output 要素の値は送信されません。ただ単に表示するだけです。
初期値を、<output>~</output> の間に記述することができます。
output 要素などのフォーム部品を識別するための名前を指定します。
<form onInput="sum.value = Number(x.value) + Number(y.value);"> <input type="number" name="x" value="0"> + <input type="number" name="y" value="0"> = <output name="sum">0</output> <input type="submit" value="送信"> </form>
output 要素の値は送信されません。
計算の対象となるフォーム部品を指定します。この属性の値には、対象となるフォーム部品に指定した ID 名を記述します。複数ある場合は、空白で区切って指定します。
この属性は、フォーム部品と計算結果の関連性を明確に示すだけで、特に実行や表示結果が変わるわけではなさそうです。
<form onInput="sum.value = Number(x.value) + Number(y.value);"> <input type="number" name="x" id="x" value="0"> + <input type="number" name="y" id="y" value="0"> = <output name="sum" for="x y">0</output> <input type="submit" value="送信"> </form>
output 要素の値は送信されません。
form 属性は、その出力欄をどの form 要素に関連付けるかを指定します。この属性の値には、対応する form 要素に指定した ID 名を記述します。
<form id="form1" onInput="sum.value = Number(x.value) + Number(y.value);"> <input type="number" name="x" value="0"> + <input type="number" name="y" value="0"> <input type="submit" value="送信"> </form> = <output name="sum" form="form1">0</output>
output 要素の値は送信されません。
作業の進捗状況をプログレスバーで表示します。
なお、value 属性が省略されたら、進捗状況が確定していないことを表し、そのプログレスバーは未確定プログレスバーとなります。そうでなければ、確定プログレスバーとなります。
また、progress 要素に対応していないブラウザでは、<progress>~</progress> の間に記述した文字列が表示されます。
value 属性は、現時点の進捗状況を 0 以上で、max 属性の値以下の数値で指定します。
value 属性が省略されたら、進捗状況が確定していないことを表し、そのプログレスバーは未確定プログレスバーとなります。
<progress value="0.7">進捗率 70%</progress> <br><br> <progress>進捗状況確認中</progress>
この例では、上側は 7割の作業が完了していることを示していますが、下側は進捗状況が確定していないことを表しています。
![]() |
![]() |
![]() |
![]() |
![]() |
max 属性は、全体の作業量を指定します。省略した場合は 1 になります。
<progress value="70" max="100">進捗率 70%</progress>
この例でも、やはり 7割の作業が完了していることを示しています。つまり、value 属性や max 属性で記述した数値ではなく、その比率を表示するということです。
form 属性は、その出力欄をどの form 要素に関連付けるかを指定します。この属性の値には、対応する form 要素に指定した ID 名を記述します。
<form id="form1"> <input type="text" name="param"> </form> <progress value="0.3" form="form1">進捗率 30%</progress>
特定の範囲内における数量や割合を表示します。
また、meter 要素に対応していないブラウザでは、<meter>~</meter> の間に記述した文字列が表示されます。
value 属性は、現時点の進捗状況を min 属性の値以上で、max 属性の値以下の数値で指定します。
<meter value="0.7">使用率 70%</meter>
この例では、7割の数量が存在していることを示しています。
min 属性、max 属性は、ゲージの最小値、最大値を指定します。省略した場合はそれぞれ 0、 1 になります。
<meter value="170" min="100" max="200">残量 170</meter>
この例でも、やはり 7割の数量が存在していることを示しています。
low 属性、high 属性は、min 属性と max 属性の間の中間領域を指定します。つまり、min < low < high < max と指定します。省略した場合はそれぞれ min 属性と max 属性の値と同じになります。
<progress value="140" min="100" max="200" low="130" high="160">安全領域 140</progress> <br><br> <progress value="170" min="100" max="200" low="130" high="160">危険領域 170</progress>
ブラウザにもよりますが、value 属性の値が low 属性と high 属性の値の間にあれば緑で、その範囲外であれば黄色で表示されます。
この例では、上が範囲内、下が範囲外になっています。
optimum 属性は、その値が含まれている範囲を最適な領域とします。つまり、min < low < high < optimum < max と指定した場合、high ~ max の間が最適な領域となります。省略した場合は min 属性と max 属性の値の中間点になります。
<progress value="120" min="100" max="200" low="130" high="160" optimum="180">非最適領域 120</progress> <br><br> <progress value="140" min="100" max="200" low="130" high="160" optimum="180">準最適領域 140</progress> <br><br> <progress value="170" min="100" max="200" low="130" high="160" optimum="180">最適領域 170</progress>
ブラウザにもよりますが、value 属性の値が最適な領域にあれば緑で、それに隣接する領域であれば黄色で、さらに離れた領域だと赤で表示されます。
この例では、一番上が非最適領域、二番目が準最適領域、一番下が最適領域になっています。
![]() |
![]() |
![]() |
form 属性は、その出力欄をどの form 要素に関連付けるかを指定します。この属性の値には、対応する form 要素に指定した ID 名を記述します。
<form id="form1"> <input type="text" name="param"> </form> <meter value="0.3" form="form1">使用率 30%</meter>