HTML Living Standard  第1部 HTML 11 フォーム


 

11 フォーム

11.1 フォーム

11.1.1 フォーム (form)

form 要素は、入力・送信フォームを作る際に使用します。 <form>~</form>の間に、 input 要素、select 要素、textarea 要素等のタグで、 一行テキストボックス・サブミットボタン・ラジオボタン・チェックボックス・セレクトボックス・テキストボックス等のフォーム部品を配置します。

フォームに入力されたデータは、送信ボタンを押すことでウェブサーバーへ送信されます。その際の送信先 URI は action 属性で、データの送信方法は method 属性で、送信するデータの形式は enctype 属性でそれぞれ指定します。

form 要素

入力・送信フォームを作る際に使用する。入力コントロールを配置して、閲覧者が入力した情報などをサーバに送信する。

属性

属性名属性値説明必須
actionURI送信先の URI
rel関係性
 リンクタイプ一覧
リンク先との関係性×
method送信時の HTTP メソッドを指定する×
getURL の後にデータを付け加えて送信(規定値)
postURL の後にデータを付け加えないで、ボディ部に格納して送信
enctype送信データのエンコード・タイプを指定する×
application/x-www-form-urlencoded全ての文字を URL エンコードする。(規定値)
multipart/form-dataフォームにファイルを送信する機能がある場合に指定する。
text/plainスペースだけ「+」記号に変換する。その他の特殊文字はエンコードしない。
accept-charsetエンコーディング送信時の文字エンコーディング×
name文字列フォームの名前×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
novalidate論理値妥当性をチェックしない×
target送信結果の表示方法×
_blank新規のウィンドウ
_self現在のウィンドウ(フレーム)(規定値)
_parent親フレーム
_topフレームを解除したウィンドウ全体
ウィンドウ名、フレーム名指定したウィンドウやフレーム


(1) action 属性

action 属性は、送信先 URI を指定する際に使用します。サーバ側でデータを受け取るプログラムを指定するのが通常です。

ただし、input 要素や button 要素で作成されるサブミットボタンに formaction 属性が指定されている場合には、formaction 属性の値が優先されます。

記述例
<form action="/register"></form>

(2) method 属性

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>

(3) enctype 属性

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>

(4) accept-charset 属性

accept-charset 属性は、送信されるデータの文字エンコーディングを指定する際に使用します。多くの場合、文字エンコーディングを指定しなくてもサーバー側で自動判別されるようですが、文字化けが起きる場合には accept-charset 属性を指定することで回避できるかもしれません。

日本語の文字エンコーディングの値としては、"UTF-8"、"Shift_JIS"、"EUC-JP"などが挙げられます。また、複数の文字エンコーディングの候補を半角スペースで区切って指定することもできます。なお、大文字と小文字は区別されません。

記述例
<form action="/register" method="post" accept-charset="UTF-8"></form>

(5) name 属性

name 属性は、フォームに固有の名前をつけます。複数のフォームがあるとき、各フォームに名前をつけていれば、Javascript などで操作したいフォームをコントロールできます。

記述例
<form action="/register" method="post" name="form1"></form>

(6) autocomplete 属性

autocomplete 属性は、オートコンプリート(入力欄の自動補完)を有効にするかどうかを指定する際に使用します。

記述例
<form action="/register" method="post" autocomplete="off"></form>

(7) novalidate 属性

novalidate 属性は、入力されたデータのバリデーション(妥当性チェック)をしないようにする際に使用します。input 要素の type 属性で、email や、url などの属性値を指定することができますが、これらの属性値に対応したブラウザでは、Eメールや URI として妥当ではない内容が入力された場合には バリデーション機能が働いてデータが送信されません。しかし、novalidate 属性を指定すると、このバリデーション機能が無効になります。

記述例
<form action="/register" method="post" novalidate>
  <input type="email"></form>

(8) target 属性

target 属性は、フォーム送信するターゲット先を指定します。

記述例
<form action="/register" method="post" target="_top"></form>

11.1.2 入力項目のグループ化 (fieldset)

fieldset 要素は、フォームの入力項目をグループ化する際に使用します。input 要素・select 要素・textarea 要素等のフォーム部品がグループ化され、一般的なブラウザではボーダーで囲まれて表示されます。

fieldset 要素

フォーム部品をグループ化する際に使用する。fieldset 要素内の先頭に legend 要素を配置することによって、キャプションを付けることができる。

属性

属性名属性値説明必須
name文字列フォーム部品の名前×
formID名関連付けるform要素に指定したID名×
disabled論理値フォーム部品の無効化×

記述例
<form>
  <fieldset>
    <input type="text" name="param1"><br>
    <input type="text" name="param2"><br>
    <input type="submit" value="送信">
  </fieldset>
</form>

表示例

(1) name 属性

name 属性は、固有の名前をつけます。Javascript などで操作するときに参照します。

記述例
<form>
  <fieldset name="set1"></fieldset>
</form>

(2) 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>

表示例

(3) disabled 属性

disabled 属性は、グループ単位でフォーム部品を無効にすることができます。ただし、legend 要素内に配置された部品は無効化されません。

記述例
<form>
  <fieldset disabled>
    <input type="text" name="param1"><br>
    <input type="text" name="param2"><br>
    <input type="submit" value="送信">
  </fieldset>
</form>

表示例

11.1.3 部品グループのキャプション (legend)

legend 要素は、部品グループのキャプション(タイトルや説明)を表します。この要素は、fieldset 要素の子要素として使用します。

fieldset 要素にキャプションを付けたい場合に、fieldset 要素内の先頭に legend 要素を配置します。

legend 要素

グループ化したフォーム部品にキャプションを付けることができる。

属性

なし


記述例
<form>
  <fieldset>
    <legend>キャプション</legend>
    <input type="text" name="param1"><br>
    <input type="text" name="param2"><br>
    <input type="submit" value="送信">
  </fieldset>
</form>

表示例


11.1.4 フォーム部品のラベル (label)

label 要素は、フォーム部品のラベルを表します。この要素を使用することで、フォーム部品とラベルを関連付けることができます。

label 要素

フォーム部品にラベルを付けることによって、フォーム部品とラベルを関連付けることができる。

属性

属性名属性値説明必須
forID名関連付けるフォーム部品のID名×
formID名関連付ける 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>

表示例


11.2 入力欄・選択肢・ボタン

11.2.1 フォーム部品 (input)

input 要素は、フォーム部品の種類を指定する際に使用します。 input 要素は、type 属性にどのような値を指定するかによって、一行テキストボックス、チェックボックス、ラジオボタン、送信ボタン、リセットボタン等、フォーム部品の種類を指定し分けることができます。type 属性の規定値は、type="text"(一行テキストボックス)です。

input 要素

フォーム部品の種類を指定する際に使用する。type 属性によって、いろいろな形式の入力欄を作成できる。

属性は、type 属性によらず次のような指定できる。それ以外にさらに type 属性ごとに指定できる属性もある。

input 要素に共通な属性

属性名属性値説明必須
typeタイプフォーム部品のタイプ(規定値:text)×
name文字列フォーム部品の名前(データが送信される際は、この名前と入力された値が一組になって送信される。)
value文字列送信される値(入力欄の初期値、選択時の値、ボタンのテキスト)×
disabled論理値フォーム部品の無効化×
formID名関連付ける form 要素に指定したID名×
required論理値必須入力(入力欄となる type に指定可)×


(1) type 属性

type 属性は、フォーム部品のタイプを指定します。type 属性の属性値に入力コントロールの種別を与えることで、様々な入力コントロールを表示させることができます。

属性値説明
text一行テキスト入力欄(規定値)
passwordパスワード入力欄
tel電話番号入力欄
urlURL 入力欄
emailメールアドレス入力欄
search検索テキスト入力欄
datetimeUTC(協定世界時)による日時入力欄
datetime-localローカル日時入力欄
date日付入力欄
month年月入力欄
week年週入力欄
time時刻入力欄
number数値入力欄
rangeレンジ入力欄
color色入力欄
radioラジオボタン
checkboxチェックボックス
fileアップロードファイル選択欄
hidden非表示データ欄
submit送信ボタン
image画像の送信ボタン
resetリセットボタン
button汎用ボタン

○ type="text"

一行テキスト入力欄を作成します(規定値)。

type="text"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="text"

一行テキスト入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×

記述例
<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 属性で指定された値以外を入力することもできます。

入力候補のリストは、list 属性で datalist 要素 の id を指定します。では、マウスを入力欄内に入れると入力欄の右側に ▼ が表示されますので、入力欄をクリックするとリストが表示されます。は、▼ が表示されない上に、何も入れられていないときに入力欄を2回クリックする必要があります。

表示例

○ type="password"

パスワード入力欄を作成します。

パスワード入力欄に入力されたテキストは、ブラウザ上ではアスタリスクなど(●や*)に置き換えられて表示されます。 ただし、入力されたデータが暗号化されて送信されるわけではなく、 送信されたデータを受け取ることができれば内容を見ることができます。 利用の際には注意してください。

type="password"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="password"

パスワード入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×

記述例
<form>
  パスワード:<input type="password" name="param" size="30">
        <input type="submit" value="送信">
</form>

表示例

○ type="tel"

電話番号入力欄を作成します。

スマートフォンなどでは電話番号入力用のテンキーが表示されます。ただし、妥当な電話番号といっても実際にはその形式は様々なので、特に入力形式が強制されてはいません。

type="tel"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="tel"

電話番号入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×

記述例
<form action="#">
  電話番号:<input type="tel" name="param" size="12" autocomplete="off" pattern="^[0-9]{9,11}$">
        <input type="submit" value="送信">
</form>

この例では、pattern 属性を指定し9~11文字の数字に制限しています。

表示例

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示は、type="text" のときと同様です。


○ type="url"

URL の入力欄を作成します。

HTTP: や HTTPS:(小文字でも可)で始まらないとバリデーションが働きます(エラーになります)。ただし、type="url" を指定しておけば、必ずユーザーに正確な URL を記入してもらえるというわけではないので、pattern 属性を指定するなど、使用の際には注意が必要です。

type="url"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="url"

URL 入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×

記述例
<form>
  URL:<input type="url" name="param" size="60" pattern="https?://[\w/:%#\$&\?\(\)~\.=\+\-]+">
        <input type="submit" value="送信">
</form>

この例では、pattern 属性を指定し URL の形式に制限しています。なお、: や / は、%nn に変換されます。

表示例

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示は、type="text" のときと同様です。


○ type="email"

メールアドレスの入力欄を作成します。

アットマーク( @ )を含む妥当なメールアドレスでは無い場合にバリデーションが働きます(エラーになります)。ただし、type="email" を指定しておけば、必ずユーザーに正確なメールアドレスを記入してもらえるというわけではないので、pattern 属性を指定するなど、使用の際には注意が必要です。

type="email"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="email"

URL 入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×
multiple論理値カンマ( , )区切りで複数の値が入力可×

記述例
<form>
  URL:<input type="email" name="param" size="60" pattern="[\w\d_-]+@[\w\d_-]+\.[\w\d._-]+">
        <input type="submit" value="送信">
</form>

この例では、pattern 属性を指定しメールアドレスの形式に制限しています。

表示例

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示は、type="text" のときと同様です。


○ type="search"

検索テキスト入力欄を作成します。

type="search"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="search"

検索文字列の入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×
patternID名入力値の正規表現パターン
正規表現一覧
×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×

記述例
<form>
  検索文字列:<input type="search" name="param" size="30">
        <input type="submit" value="送信">
</form>

表示例

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示は、type="text" のときと同様です。


○ type="datetime-local"

ローカル日時の入力欄を作成します。

type="datetime-local"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="datetime-local"

ローカル日時の入力欄を作成する。

属性

属性名属性値説明必須
max日時入力できる最大値(yyyy-mm-ddThh:mm:ss)×
min日時入力できる最小値(yyyy-mm-ddThh:mm:ss)×
step整数入力欄で刻むステップ値(単位は秒)(規定値:60)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<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 に置き換えられています。

表示例
ブラウザによる違い
入力可能な日時しか選べない。ただし、直接の入力では範囲外も入力できてしまうが、送信ボタンを押してからエラーチェックされる

入力候補のリストは、list 属性で datalist 要素の id を指定します。

入力候補のリストから日付を選択できますます。ただし、「その他...」からそれ以外の日付も選択できます。

は対応していません。

記述例
<form>
  日時:<input type="datetime-local" name="param" list="date" value="2019-05-04T12:00:00">
        <input type="submit" value="送信">
 <datalist id="arealist">
  <option value="2019-05-01T12:00:00"></option>
  <option value="2019-05-04T12:00:00"></option>
  <option value="2019-05-07T13:00:00"></option>
  <option value="2019-05-09T12:00:00"></option>
 </datalist>
</form>
表示例
ブラウザによる違い
list 属性は無視

○ type="date"

日付の入力欄を作成します。

type="date"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="date"

日付の入力欄を作成する。

属性

属性名属性値説明必須
max日付入力できる最大値(yyyy-mm-dd)×
min日付入力できる最小値(yyyy-mm-dd)×
step整数入力欄で刻むステップ値(単位は日)(規定値:1)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<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日ごと)を制限しています。

表示例
ブラウザによる違い
入力可能な日時しか選べない。ただし、直接の入力では範囲外も入力できてしまうが、送信ボタンを押してからエラーチェックされる

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示形式は、type="datetime-local" のときと同様です。


○ type="month"

年月の入力欄を作成します。

type="month"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="month"

年月の入力欄を作成する。

属性

属性名属性値説明必須
max年月入力できる最大値(yyyy-mm)×
min年月入力できる最小値(yyyy-mm)×
step整数入力欄で刻むステップ値(単位は月)(規定値:1)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<form>
  年月:<input type="month" name="param" min="2019-04" max="2019-10">
        <input type="submit" value="送信">
</form>

この例では、min や max 属性を指定し入力できる年月を制限しています。

表示例
ブラウザによる違い
type="text" と変わらない
日付も制限していない
入力可能な日時しか選べない。ただし、直接の入力では範囲外も入力できてしまうが、送信ボタンを押してからエラーチェックされる

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示形式は、type="datetime-local" のときと同様です。


○ type="week"

年週の入力欄を作成します。週は、月曜日から日曜日までの週を 01 とした二桁の週番号で指定します。

type="week"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="week"

年月の入力欄を作成する。

属性

属性名属性値説明必須
max年月入力できる最大値(yyyy-Wnn)×
min年月入力できる最小値(yyyy-Wnn)×
step整数入力欄で刻むステップ値(単位は週)(規定値:1)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<form>
  年週:<input type="week" name="param" min="2019-W20" max="2019-W42">
        <input type="submit" value="送信">
</form>

この例では、min や max 属性を指定し入力できる週を制限しています。

表示例
ブラウザによる違い
type="text" と変わらない
日付も制限していない
入力可能な日時しか選べない。ただし、直接の入力では範囲外も入力できてしまうが、送信ボタンを押してからエラーチェックされる

入力候補のリストは、list 属性で datalist 要素の id を指定します。リストの表示形式は、type="datetime-local" のときと同様です。


○ type="time"

時刻の入力欄を作成します。

type="time"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="time"

時刻の入力欄を作成する。

属性

属性名属性値説明必須
max時刻入力できる最大値(hh:mm:ss)×
min時刻入力できる最小値(hh:mm:ss)×
step整数入力欄で刻むステップ値(単位は秒)(規定値:1)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<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 に置き換えられています。

表示例
ブラウザによる違い
入力可能な日時しか選べない。ただし、直接の入力では範囲外も入力できてしまうが、送信ボタンを押してからエラーチェックされる

入力候補のリストは、list 属性で datalist 要素 の id を指定します。リストの表示形式は、type="datetime-local" のときと同様です。

ただし、秒が指定してあると、value 値と秒の一致しない時刻はリストに表示されません。


○ type="number"

数値の入力欄を作成します。

type="number"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="number"

数値の入力欄を作成する。

属性

属性名属性値説明必須
size整数入力欄の幅×
maxlength整数入力できる最大文字数×
max整数入力できる最大値×
min整数入力できる最小値×
step整数入力欄で刻むステップ値(規定値:1)×
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<form>
  数値:<input type="number" name="param" size="3" min="0" max="100">
        <input type="submit" value="送信">
</form>

この例では、min や max 属性を指定し入力できる数値を制限しています。

表示例
ブラウザによる違い
送信ボタンを押してからエラーチェックされる
また、数字、符号、小数点、e E(指数)以外は入力できない

入力候補のリストは、list 属性で datalist 要素 の id を指定します。リストの表示形式は、type="datetime-local" のときと同様です。

ただし、value 属性が指定してあると、value 値と一致しない数値はリストに表示されません。


○ type="range"

レンジ入力欄を作成します。

レンジ入力では、正確な数値は重要ではなく、ユーザーはどの程度なのかを感覚的に指定することができます。初期値は、最大値と最小値の平均値になります。

type="range"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="range"

レンジ入力欄を作成する。

属性

属性名属性値説明必須
max整数入力できる最大値(規定値:100)×
min整数入力できる最小値(規定値:0)×
step整数入力欄で刻むステップ値(規定値:1)×
readonly論理値読み取り専用×
listID名入力候補のリスト×

記述例
<form>
  数値:<input type="range" name="param" min="-1000" max="1000" step="10">
        <input type="submit" value="送信">
</form>

表示例
ブラウザによる違い

入力候補のリストは、list 属性で datalist 要素 の id を指定します。list 属性を指定すると入力候補のリストで指定された数値の位置に縦線が表示されます。

ただし、入力候補のリストで指定された数値しか選べないということはありません。

記述例
<form>
  数値:<input type="range" name="param" min="23" max="32" list="temperature" value="28">
        <input type="submit" value="送信">
  <datalist id="temperature">
  <option value="25"></option>
  <option value="26"></option>
  <option value="27"></option>
  <option value="28"></option>
  <option value="29"></option>
  <option value="30"></option>
  </datalist>
</form>

表示例
ブラウザによる違い

○ type="color"

色の入力欄を作成します。

常に何らかの色が選択された状態となり、空の値を指定することはできません。

type="color"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="color"

色の入力欄を作成する。

属性

属性名属性値説明必須
readonly論理値読み取り専用×
autocompleteオートコンプリート×
onオートコンプリートを有効にする(規定値)
offオートコンプリートを無効にする
listID名入力候補のリスト×

記述例
<form>
  色:<input type="color" name="param">
        <input type="submit" value="送信">
</form>

表示例
ブラウザによる違い

ダイアログが開く

入力候補のリストは、list 属性で datalist 要素 の id を指定します。

ただし、入力候補のリストで指定された色しか選べないということはありません。

記述例
<form>
  色:<input type="color" name="param" list="green" value="#00ff00">
        <input type="submit" value="送信">
  <datalist id="green">
  <option value="#00ff00"></option>
  <option value="#00ee00"></option>
  <option value="#00dd00"></option>
  <option value="#00cc00"></option>
  <option value="#00bb00"></option>
  <option value="#00aa00"></option>
  <option value="#009900"></option>
  </datalist>
</form>

表示例
ブラウザによる違い

ダイアログが開く

○ type="radio"

ラジオボタンを作成します。

name 属性の属性値を同じにすることによって、複数のラジオボタンを1つのグループにすることができます。ラジオボタンは同じグループからはひとつしか選択できません。

type="radio"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="radio"

ラジオボタンを作成する。

name 属性の属性値を同じにすることによって、複数のラジオボタンを1つのグループにすることができる。

属性

属性名属性値説明必須
checked論理値初期値で選択された状態にする×

記述例
<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"

チェックボックスを作成します。

type="checkbox"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="checkbox"

チェックボックスを作成する。

属性

属性名属性値説明必須
checked論理値初期値で選択された状態にする×

記述例
<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>

表示例

○ type="file"

サーバーへ送信するファイルを選択できるように、ファイル名の入力フィールドと[参照]ボタンを作成します。入力フィールドや[参照]ボタンをクリックすると、ファイルを選択するウィンドウが開きます。

なお、ファイルを送信するためは、form 要素に method="post" と enctype="multipart/form-data" を指定しておく必要があります。

type="file"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="file"

ファイルの送信欄(ファイル名の入力フィールドと[参照]ボタン)を作成する。

属性

属性名属性値説明必須
acceptMIMEタイプ(ファイルの制限)  MIME タイプ一覧×
audio/*音声ファイル
video/*動画ファイル
image/*画像ファイル
multiple論理値複数指定×

記述例
<form>
  <input type="file" name="param" accept="image/png">
        <input type="submit" value="送信">
</form>

ファイル名に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。

表示例

ブラウザによる違い

○ type="hidden"

ブラウザ上に表示されない非表示データを送信することができます。ただし、ブラウザ上には表示されませんが、HTMLソースを表示すれば見ることができるので注意してください。

type="hidden"を指定した場合、input 要素に共通な属性を指定できます。

type="hidden"

ブラウザ上に表示されない非表示データを作成する。

属性

なし
記述例
<form>
  <input type="hidden" name="param" value="100">
        <input type="submit" value="送信">
</form>

非表示なので、なにも表示されていませんが、定義はされています。

表示例

○ type="submit"

フォームの送信ボタンを作成することができます。

type="submit"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="submit"

フォームの送信ボタンを作成する。

ボタンに表示させる文字列は、value 属性で指定する。

属性

属性名属性値説明必須
formactionURI送信先の URI(form 要素の action 属性の設定を置き換え)×
formmethod送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え)×
getURL の後にデータを付け加えて送信(規定値)
postURL の後にデータを付け加えないで、ボディ部に格納して送信
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"

画像を使った送信ボタンを作成することができます。

type="image"を指定した場合、input 要素に共通な属性に加え、次のような属性を指定できます。

type="image"

画像を使った送信ボタンを作成する。

属性

属性名属性値説明必須
srcURI画像ファイルの URI
alt文字列画像を表示しない場合に代わりになる文字列
widthピクセル値画像の幅×
heightピクセル値画像の高さ×
formactionURI送信先の URI(form 要素の action 属性の設定を置き換え)×
formmethod送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え)×
getURL の後にデータを付け加えて送信(規定値)
postURL の後にデータを付け加えないで、ボディ部に格納して送信
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"

リセットボタンを作成することができます。

type="reset"を指定した場合、input 要素に共通な属性を指定できます。

type="reset"

リセットボタンを作成する。

属性

なし
記述例
<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>

リセットボタンをクリックすると、それまでに入力した情報をすべてキャンセルして、最初から入力をやり直すことができます。

表示例

○ type="button"

汎用的に使えるボタンを作成することができます。デフォルトの動作がないので、Javascript などと組み合わせて使用されることが多いようです。

type="button"を指定した場合、input 要素に共通な属性を指定できます。

type="button"

汎用ボタンを作成する。

属性

なし
記述例
<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 が実行されます。

表示例



(2) name 属性

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

表示例


(3) value 属性

送信される値を指定します。

この属性の値は、name 属性の値とセットで送信されることになります。ただし、部品の種類により次のような違いがあります。

入力欄(text、date、number、hidden など)の場合
入力欄に表示される初期値として使用されます。内容が書き換えられた場合は、そちらが送信されることになります。
選択欄(radio、checkbox)の場合
そのボタン(またはボックス)が選択されている場合に送信されます。
ボタン(submit、reset、button)の場合
ボタンに表示されるテキストとして使用されます。
記述例
<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 属性の値が = で連結され、データが複数あればさらに & で連結されて送られます。これにより、複数のデータを識別することができます。

表示例


(4) disabled 属性

フォーム部品の無効化を指定します。

この属性が指定された部品は、選択や書き換えができなくなり、データも送信されなくなります。

記述例
<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 属性が記述してあるフォーム部品はグレー表示になり、入力も選択もできなくなります。

表示例


(5) form 属性

フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。

この属性の値には、対応する form 要素に指定した ID 名を記述します。

記述例
<p>入力欄:<input type="text" name="param" value="ABC" form="form1"></p>
<form id="form1">
  <input type="submit" value="送信">
</form>

表示例


(6) required 属性

required 属性は、そのフォーム部品が入力必須であることを指定します。

記述例
<form>
  <input type="text" name="param1" required><br>
  <input type="number" name="param2" required>
        <input type="submit" value="送信">
</form>

表示例




11.2.2 入力候補のリスト (datalist)

datalist 要素は、入力候補のリストを作成します。入力候補の選択肢は、この要素内に配置する option 要素で示すことになります。ただし、選択肢以外の文字列も入力することができます。

datalist 要素は、password 以外の、テキストを入力できる type 属性を持つ input 要素で指定できます。

○ type="text"、"tel"、"url"、"email"、"search"

文字列を入力するような type 属性の場合は、は、マウスを入力欄内に入れると入力欄の右側に ▼ が表示されますので、入力欄をクリックするとリストが表示されます。は、▼ が表示されない上に、何も入れられていないときに入力欄を2回クリックする必要があります。

datalist 要素

入力候補のリストを作成する。

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 と入力するとリストは 静岡県 だけになります。ただし、 は対応していません。

表示例

○ type="datetime-local"、"date"、"month"、"week"、"time"、"number"

入力候補のリストから日付を選択できますます。ただし、「その他...」からそれ以外の日付も選択できます。

は対応していません。

記述例
<form>
  日時:<input type="date" name="param" list="date" value="2019-05-04">
        <input type="submit" value="送信">
 <datalist id="arealist">
  <option value="2019-05-01"></option>
  <option value="2019-05-04"></option>
  <option value="2019-05-07"></option>
  <option value="2019-05-09"></option>
 </datalist>
</form>
表示例

○ type="range"

list 属性を指定すると入力候補のリストで指定された数値の位置に縦線が表示されます。

ただし、入力候補のリストで指定された数値しか選べないということはありません。

記述例
<form>
  数値:<input type="range" name="param" min="23" max="32" list="temperature" value="28">
        <input type="submit" value="送信">
  <datalist id="temperature">
  <option value="25"></option>
  <option value="26"></option>
  <option value="27"></option>
  <option value="28"></option>
  <option value="29"></option>
  <option value="30"></option>
  </datalist>
</form>
表示例

ブラウザによる違いは input 要素を参照してください。


○ type="color"

list 属性を指定すると入力候補のリストで指定された色が表示されます。

ただし、入力候補のリストで指定された色しか選べないということはありません。

記述例
<form>
  色:<input type="color" name="param" list="green" value="#00ff00">
        <input type="submit" value="送信">
  <datalist id="green">
  <option value="#00ff00"></option>
  <option value="#00ee00"></option>
  <option value="#00dd00"></option>
  <option value="#00cc00"></option>
  <option value="#00bb00"></option>
  <option value="#00aa00"></option>
  <option value="#009900"></option>
  </datalist>
</form>

表示例

ブラウザによる違いは input 要素を参照してください。

11.2.3 選択肢 (option)

option 要素は、プルダウンメニューの選択肢、または入力候補リストの選択肢を作成します。この要素は、select 要素、optgroup 要素、datalist 要素の子要素として使用します。

option 要素

選択肢を作成する。

select 要素、optgroup 要素、datalist 要素の子要素として使用できる。

datalist 要素の子要素として記述した場合と、select 要素の子要素として記述した場合とでは若干違いがあるので注意が必要

属性

属性名属性値説明必須
value文字列送信される値×(datalist 要素の子要素の場合 ○)
label文字列選択肢のラベル×
selected論理値選択状態(select 要素の子要素の場合のみ)×
disabled論理値選択肢の無効化×

記述例
<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 属性を付加しているので、リストに表示されません。

表示例



11.3 プルダウンメニュー

11.3.1 プルダウンメニュー (select)

select 要素は、プルダウンメニューを作成します。メニューの選択肢は、この要素内に配置する option 要素で示すことになります。

datalist 要素を指定した input 要素の場合と異なり、選択肢以外を入力することはできません。

select 要素

select 要素は、プルダウンメニューを作成する。メニューの選択肢は、この要素内に配置する option 要素で示すことになる。

属性

属性名属性値説明必須
name文字列フォーム部品の名前(データが送信される際は、この名前と入力された値が一組になって送信される。)
size整数表示される選択肢の数(規定値:multiple 属性 有のとき:4、無のとき:1)×
multiple論理値複数選択可能×
disabled論理値フォーム部品の無効化×
formID名関連付ける form 要素に指定したID名×
required論理値必須入力×

(1) name 属性

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=?? という形式で選択した値が送られます。

表示例


(2) size 属性

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行分表示されています。

表示例


(3) multiple 属性

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 の場合は、シフトキーやコントロールキーと組み合わせてクリックします。

表示例


(4) disabled 属性

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 属性が指定されていますので、選択できないようにグレー表示されます。

表示例


(5) form 属性

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>

表示例


(6) required 属性

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番目以降の選択肢(空でない選択肢)を選択する必要があります。

表示例





11.3.2 選択肢 (option)

option 要素は、プルダウンメニューの選択肢、または入力候補リストの選択肢を作成します。この要素は、select 要素、optgroup 要素、datalist 要素の子要素として使用します。

option 要素

選択肢を作成する。

select 要素、optgroup 要素、datalist 要素の子要素として使用できる。

datalist 要素の子要素として記述した場合と、select 要素の子要素として記述した場合とでは若干違いがあるので注意が必要

属性

属性名属性値説明必須
value文字列送信される値
label文字列選択肢のラベル△(必須ではないが指定したほうがよい)
selected論理値選択状態(select 要素の子要素の場合のみ)×
disabled論理値選択肢の無効化×

次のような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 属性を付加しているので、あらかじめ選択された状態で表示されます。

表示例



11.3.3 選択肢グループ (optgroup)

optgroup 要素は、option 要素で作成する選択肢をグループ化する際に使用します。

label 属性は、選択肢グループにラベル(項目名)を付ける属性で、必ず指定する必要があります。

disabled 属性は、option 要素で作成する選択肢をグループごと無効にする場合に使用します。

optgroup 要素

プルダウンメニューの選択肢をグループ化する。

属性

属性名属性値説明必須
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 属性を付加しているので、グループ全体が選択できないようにグレー表示されています。

表示例



11.4 複数行テキスト (textarea)

textarea 要素は、複数行のテキスト入力欄を作成します。

入力欄の初期値を表示するには、<textarea>~</textarea> の間に書きます。

入力欄は、指定しなければ一行当たり 20 文字で 2 行の大きさになります。

textarea 要素

textarea 要素は、複数行のテキスト入力欄を作成する。入力欄の初期値は、<textarea>~</textarea> の間に書く。

属性

属性名属性値説明必須
name文字列フォーム部品の名前(データが送信される際は、この名前と入力された値が一組になって送信される。)
cols整数入力欄の幅を文字数で指定 (規定値は 20)×
rows整数入力欄の高さを行数で指定 (規定値は 2)×
readonly論理値読み取り専用×
disabled論理値フォーム部品の無効化×
maxlength整数入力できる最大文字数を指定×
wrap送信時の改行の有無×
soft折り返しを反映せずに送信する (規定値)
hard折り返し部分に改行を入れて送信する
formID名関連付ける form 要素に指定したID名×
placeholder文字列入力のヒント×
dirname文字列書字方向の送信に使う名前×
required論理値必須入力×

(1) name 属性

select 要素などのフォーム部品を識別するための名前を指定します。

この属性の値は、入力されたデータ(または value 属性の値)とセットで送信されることになります。

記述例
<form>
  ご意見をお聞かせください<br>
  <textarea name="comment">なし</textarea>
  <input type="submit" value="送信">
</form>

入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。

表示例

(2) cols 属性と rows 属性

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 で表した文字コードです。

表示例

(3) readonly 属性

そのフォーム部品が読み取り専用であることを指定します。

書き換えはできませんが、選択することは可能でデータも送信されます。

記述例
<form>
  ご意見をお聞かせください<br>
  <textarea name="comment" readonly>なし</textarea>
  <input type="submit" value="送信">
</form>

入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。

表示例

(4) disabled 属性

そのフォーム部品の無効化を指定します。

グレー表示名なり、選択することできなくなり、データも送信されません。

記述例
<form>
  ご意見をお聞かせください<br>
  <textarea name="comment" disabled>なし</textarea>
  <input type="submit" value="送信">
</form>

表示例

(5) maxlength 属性

入力できる最大文字数を指定します。半角でも全角でも 1文字と見なします。

記述例
<form>
  ご意見をお聞かせください<br>
  <textarea name="comment" maxlength="30">なし</textarea>
  <input type="submit" value="送信">
</form>

入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。

表示例

(6) wrap 属性

入力テキストの折り返し部分を、送信データに反映させるかどうかを指定します。指定できる値は次の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"

(7) form 属性

form 属性は、フォーム部品を form 要素の外に配置した場合に、どの form 要素に関連付けるかを指定します。

この属性の値には、対応する form 要素に指定した ID 名を記述します。

記述例
<textarea name="comment" form="form1">なし</textarea>
<form id="form1">
 <input type="submit" value="送信">
</form>

表示例

(8) placeholder 属性

入力の助けとなるような短いヒント(記入例やフォーマットの例など)を指定します。

入力欄の初期値を表示する方法として、<textarea>~</textarea> の間に書く方法と、placeholder 属性で指定する方法があります。前者はあらかじめ入力されている文字列で、変更しなければこのまま送信されます。それに対して、後者はヒントであり、textarea 要素にカーソルを移動させると消え、その内容は送信されません。

両方指定した場合は、一般的なブラウザでは前者が優先されます。

記述例
<form>
  <textarea name="comment" placeholder="ご意見をお聞かせください"></textarea>
  <input type="submit" value="送信">
</form>

入力した内容に漢字コードなどが入っていると、%nn の形式で16進数として表示されます。ちなみに、この HTML 文書は UTF-8 で書かれているので、表示される16進数も UTF-8 で表した文字コードです。

表示例

(10) dirname 属性

書字方向の送信に使う名前を指定します。

ここで指定した名前が、入力内容の書字方向(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 で表した文字コードです。

表示例

(11) required 属性

required 属性は、そのフォーム部品が入力必須であることを指定します。

記述例
<form>
  ご意見をお聞かせください<br>
  <textarea name="comment" required></textarea>
  <input type="submit" value="送信">
</form>

何も入力しないで、「送信」ボタンをクリックするとエラーになります。

表示例



11.5 ボタン (button)

button 要素は、3タイプのボタン(送信ボタン、リセットボタン、汎用ボタン)を作成します。

ボタンのタイトルは <button>~</button> の間に記述しますので、単なる文字列だけでなく、画像や強調文字などを表示することもできます。

button 要素

ボタンを作成する際に使用する。type 属性によって、いろいろなボタンを作成できる。

属性は、type 属性によらず次のような指定できる。それ以外にさらに type 属性ごとに指定できる属性もある。

ボタンに表示するテキスト(タイトル)は <button>~</button> の間に記述する。

button 要素に共通な属性

属性名属性値説明必須
typeボタンのタイプ×
submit送信ボタン(規定値)
resetリセットボタン
button汎用ボタン
name文字列ボタンの名前(データが送信される際は、この名前と入力された値が一組になって送信される。)×
value文字列送信される値×
disabled論理値フォーム部品の無効化×
formID名関連付ける form 要素に指定したID名×

(1) type 属性

type 属性は、ボタンのタイプを指定します。type 属性の値にボタンの種別を与えることで、いろいろなボタンを表示させることができます。

○ type="submit"

送信ボタンを作成します。

ボタンに表示するテキスト(タイトル)は <button>~</button> の間に記述します。

type="submit"を指定した場合、button 要素に共通な属性に加え、次のような属性を指定できます。

type="submit"

フォームの送信ボタンを作成する。

ボタンに表示させる文字列は、<button>~</button> の間に記述する。

属性

属性名属性値説明必須
formactionURI送信先の URI(form 要素の action 属性の設定を置き換え)×
formmethod送信時の HTTP メソッド(form 要素の method 属性の設定を置き換え)×
getURL の後にデータを付け加えて送信(規定値)
postURL の後にデータを付け加えないで、ボディ部に格納して送信
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 の値によってどちらのボタンがクリックされたかがわかります。

表示例



○ type="reset"

リセットボタンを作成します。

記述例
<form>
  コード:<input type="text" name="param" value="A001">
        <button type="reset"><ruby>初期化<rt>リセット</rt></ruby></button>
</form>

入力欄に何を入れてもリセットボタンをクリックすると、初期値(この例では、A001)に戻ります。

表示例

○ type="button"

汎用的なボタンを作成します。ただし、何の機能も持たないので通常は 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>


表示例


(2) name 属性

フォーム部品を識別するための名前を指定します。

記述例
<form>
   <button type="submit" name="append">追加</button>
   <button type="submit" name="remove">削除</button>
</form>

name 属性の値と value 属性の値が = で連結されて送られます。ただし、この例では value 属性がないので = の右側には何もありません。


表示例


(3) value 属性

送信される値を指定します。

この属性の値は、name 属性の値と = で連結されてセットで送信されることになります。

記述例
<form>
   <button type="submit" name="button" value="append">追加</button>
   <button type="submit" name="button" value="remove">削除</button>
</form>

name 属性の値と value 属性の値が = で連結されて送られます。

表示例


(4) disabled 属性

フォーム部品の無効化を指定します。

この属性が指定された button 要素は、選択できなくなり、データも送信されなくなります。

記述例
<form>
   <button type="submit" name="button" value="append">追加</button>
   <button type="submit" name="button" value="remove" disabled>削除</button>
</form>

disabled 属性が記述してある button 要素はグレー表示になり、選択できなくなります。

表示例


(5) form 属性

フォーム部品を 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>

表示例


11.6 計算結果 (output)

計算結果を示す際に使用します。ただし、自動的に計算結果が表示されるわけではありません。Javascript などで計算し、output 要素に入れる必要があります。

また、output 要素の値は送信されません。ただ単に表示するだけです。

初期値を、<output>~</output> の間に記述することができます。

output 要素

計算結果を表示する要素を生成する。ただし、計算結果が自動的に表示されるわけではない。

属性

属性名属性値説明必須
name文字列フォーム部品の名前×
forID名関連付けるフォーム部品のID名×
formID名関連付けるform要素に指定したID名×

(1) name 属性

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 要素の値は送信されません。

表示例

(2) for 属性

計算の対象となるフォーム部品を指定します。この属性の値には、対象となるフォーム部品に指定した 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 要素の値は送信されません。

表示例

(3) form 属性

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 要素の値は送信されません。

表示例




11.7 プログレスバー、ゲージ

11.7.1 プログレスバー (progress)

作業の進捗状況をプログレスバーで表示します。

なお、value 属性が省略されたら、進捗状況が確定していないことを表し、そのプログレスバーは未確定プログレスバーとなります。そうでなければ、確定プログレスバーとなります。

また、progress 要素に対応していないブラウザでは、<progress>~</progress> の間に記述した文字列が表示されます。

progress 要素

作業の進捗状況をプログレスバーで表示する。

属性

属性名属性値説明必須
value数値進捗状況(0 ~ max)
max数値プログレスバーの最大値(規定値は 1)×
formID関連付ける form 要素の ID

(1) value 属性

value 属性は、現時点の進捗状況を 0 以上で、max 属性の値以下の数値で指定します。

value 属性が省略されたら、進捗状況が確定していないことを表し、そのプログレスバーは未確定プログレスバーとなります。

記述例
<progress value="0.7">進捗率 70%</progress>
<br><br>
<progress>進捗状況確認中</progress>

この例では、上側は 7割の作業が完了していることを示していますが、下側は進捗状況が確定していないことを表しています。

表示例

ブラウザによる違い



(2) max 属性

max 属性は、全体の作業量を指定します。省略した場合は 1 になります。

記述例
<progress value="70" max="100">進捗率 70%</progress>

この例でも、やはり 7割の作業が完了していることを示しています。つまり、value 属性や max 属性で記述した数値ではなく、その比率を表示するということです。

表示例

(3) form 属性

form 属性は、その出力欄をどの form 要素に関連付けるかを指定します。この属性の値には、対応する form 要素に指定した ID 名を記述します。

記述例
<form id="form1">
  <input type="text" name="param">
</form>
<progress value="0.3" form="form1">進捗率 30%</progress>

表示例


11.7.2 測定値 (meter)

特定の範囲内における数量や割合を表示します。

また、meter 要素に対応していないブラウザでは、<meter>~</meter> の間に記述した文字列が表示されます。

meter 要素

特定の範囲内における数量や割合を表示する。

属性

属性名属性値説明必須
value数値計測結果の値
min数値ゲージの最小値(規定値は 0)×
max数値ゲージの最大値(規定値は 1)×
low数値中間領域の下限値(規定値は min)×
high数値中間領域の上限値(規定値は max)×
optimum数値最適な領域を設定する値(規定値は minとmaxの中間点)×
formID名関連付けるform要素に指定したID名×

(1) value 属性

value 属性は、現時点の進捗状況を min 属性の値以上で、max 属性の値以下の数値で指定します。

記述例
<meter value="0.7">使用率 70%</meter>

この例では、7割の数量が存在していることを示しています。

表示例

(2) min 属性、max 属性

min 属性、max 属性は、ゲージの最小値、最大値を指定します。省略した場合はそれぞれ 0、 1 になります。

記述例
<meter value="170" min="100" max="200">残量 170</meter>

この例でも、やはり 7割の数量が存在していることを示しています。

表示例

(3) low 属性、high 属性

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 属性の値の間にあれば緑で、その範囲外であれば黄色で表示されます。

この例では、上が範囲内、下が範囲外になっています。

表示例

(4) optimum 属性

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 属性の値が最適な領域にあれば緑で、それに隣接する領域であれば黄色で、さらに離れた領域だと赤で表示されます。

この例では、一番上が非最適領域、二番目が準最適領域、一番下が最適領域になっています。

表示例

ブラウザによる違い


(5) form 属性

form 属性は、その出力欄をどの form 要素に関連付けるかを指定します。この属性の値には、対応する form 要素に指定した ID 名を記述します。

記述例
<form id="form1">
  <input type="text" name="param">
</form>
<meter value="0.3" form="form1">使用率 30%</meter>

表示例