input要素 -- フォームの部品

基本データ

input要素
文書型 適用 子要素 開始タグ 終了タグ 分類
Strict 空要素 必須 禁止 インライン要素
Transitional
Frameset

属性

固有属性

type="部品の種類"
Strict: ○ | Transitional: ○ | Frameset: ○
部品の種類を指定します。利用できる値は次のとおりです。
text
テキストボックス。
password
パスワード用のテキストボックス。
button
ボタン。
submit
送信ボタン。
image
画像を使った送信ボタン。この値を指定したときは、src属性で画像のURIを示し、alt属性に代替文字列を指定します。
reset
フォームの内容を初期化するボタン。
file
ファイルを参照するための部品。
checkbox
チェックボックス。
radio
ラジオボタン。
hidden
画面には表示されない部品。
name="部品の名前"
Strict: ○ | Transitional: ○ | Frameset: ○
部品に名前をつけます。このname属性はa要素のname属性と違い、別のフォームにあるinput要素であれば同じ名前をつけることができます。また、type="radio"type="checkbox"であれば、同じフォーム内で名前を共有することができます。フォームを送信するときには、部品の名前と値がセットで送信されます。
value="初期値"
Strict: ○ | Transitional: ○ | Frameset: ○
初期値を設定します。
type="text" type="password" のとき
テキストボックスに初期値が入力されます。
type="button" type="submit" type="reset" のとき
ボタンの表面のラベルになります。
type="file" のとき
選択するファイル名の初期値になります。
type="checkbox" type="radio" のとき
チェックが入っていたときに、部品の名前とvalue属性の値がセットで送信されます。
type="hidden" のとき
画面には表示されませんが、名前とvalue属性の値とがセットで送信されます。
この属性はtype属性がtype="checkbox"type="radio"のときには、必ず指定する必要があります。
size="横幅"
Strict: ○ | Transitional: ○ | Frameset: ○
type="text" type="password" のとき
横幅を文字数で指定します。
それ以外のとき
横幅をピクセル値で指定します。
maxlength="最大文字数"
Strict: ○ | Transitional: ○ | Frameset: ○
type="text"type="password"のときに、入力可能な最大文字数を指定します。
readonly
Strict: ○ | Transitional: ○ | Frameset: ○
部品の値を変更できなくします。変更はできなくなりますが、選択することはできます。この属性が設定されていても、データは送信されます。
disabled
Strict: ○ | Transitional: ○ | Frameset: ○
部品を選択したり、値を変更したりできなくします。この属性が設定された部品は、データが送信されません。
checked
Strict: ○ | Transitional: ○ | Frameset: ○
type="checkbox"type="radio"のときに、初期状態で選択されているようにします。
src="画像のURI"
Strict: ○ | Transitional: ○ | Frameset: ○
type="image"のときに、画像のURIを指定します。
alt="画像の代替文字列"
Strict: ○ | Transitional: ○ | Frameset: ○
type="image"のときに、画像の代わりに表示する文字列を指定します。
usemap="イメージマップのURI"
Strict: ○ | Transitional: ○ | Frameset: ○
type="image"を指定しクライアント側・イメージマップを使うときに、対象となるmap要素のname属性の値を「#ID」の形式で指定します。URIの形式を取るので「#」が必要です。
ismap
Strict: ○ | Transitional: ○ | Frameset: ○
type="image"を指定しサーバ側・イメージマップを使うときに指定します。
tabindex="タブの順番"
Strict: ○ | Transitional: ○ | Frameset: ○
タブの移動する順番を指定します。指定できる値は0?32767です。ユーザーがTABを押すと、タブインデックスの小さい順にフォーカスが移動します。tabindex="0"を指定した要素やtabindex属性を持たない要素は、tabindex属性の値が最も大きい要素にフォーカスが移動した後、順番に選択されます。
accesskey="アクセスキー"
Strict: ○ | Transitional: ○ | Frameset: ○
アクセスキーを指定します。Windows用のInternet ExplorerならAltキーとアクセスキーの同時押しで、要素にアクセスします。どのような動作をするかはブラウザによって異なります。
accept="MIMEタイプ"
Strict: ○ | Transitional: ○ | Frameset: ○
type="file"のときに、プログラムが処理できるMIMEタイプをカンマで区切って指定します。例えば、利用者に画像を送信してもらうときには「accept="image/png,image/jpeg,image/gif"」と指定します。利用者が指定された形式以外のファイルを送信しようとしたときに、ブラウザが警告を出すといった動作が期待されます。
align="行揃え"(非推奨)
Strict: × | Transitional: △ | Frameset: △
部品の表示位置を指定します。利用できる値は次のとおりです。
left
左寄せ
center
中央寄せ
right
右寄せ
justify
両端揃え
この属性は非推奨です。CSSを利用すれば同じことが可能です。
左寄せ
form { text-align: left; }
中央寄せ
form { text-align: center; }
右寄せ
form { text-align: right; }
両端揃え
form { text-align: justify; }

解説

フォームの部品となる要素です。テキストボックス、ボタン、チェックボックスなど様々な部品になります。どの種類になるかはtype属性で指定します。

<p>
  名前:<input type="text" name="name"><br>
  パスワード:<input type="password" name="passwd"><br>
  画像:<input type="file" name="image_file"><br>
  趣味:
  <input type="checkbox" name="hobby" value="car">車
  <input type="checkbox" name="hobby" value="music">音楽
  <input type="checkbox" name="hobby" value="computer">コンピュータ<br>
  性別:
  <input type="radio" name="sex" value="male" checked>男
  <input type="radio" name="sex" value="female">女<br>
  <input type="button" name="btn" value="ボタン">
  <input type="submit" value="送信">
  <input type="reset" value="リセット">
  <input type="hidden" name="datatype" value="profile">
  </p>

名前:
パスワード:
画像:
趣味: 音楽 コンピュータ
性別:

Internet Explorerだと上のサンプルフォームの表示が多少おかしくなりますが、深く気にしないでください。

type属性には次の値が指定できます。

text
1行のテキストボックスになります。テキストボックスの内容が値として送信されます。複数行入力するテキストボックスを使うにはtextarea要素を使います。
password
パスワード用のテキストボックスになります。入力された内容はアスタリスク(*)などで伏字になって表示されます。画面上では入力された内容が読み取れないようになっていますが、データを送信するときは暗号化などはされず、1行テキストボックスと同じように通常のテキストとして送信されるので、第3者に内容を読み取られる可能性があることに注意してください。
button
汎用ボタンになります。value属性の値がボタンのラベルになります。この要素の変わりにbutton要素でボタンをつくることもできます。
submit
送信ボタンになります。value属性の値がボタンのラベルになります。
image
画像を使った送信ボタンになります。この値を指定したときは、src属性で画像のURIを示し、alt属性に代替文字列を指定します。このボタンがクリックされると、クリックされたときのマウスポインタの座標が「名前.x=x座標&名前.y=y座標」という形式で送信されます。
reset
フォームの内容を初期化するボタンになります。value属性の値がボタンのラベルになります。
file
ファイルを参照するための部品になります。ファイル名を入力するテキストボックスと、ファイル選択ダイアログを表示するボタンが設置されます。この値を指定したときは、form要素のenctype属性を「enctype="multipart/form-data"」とする必要があります。
checkbox
チェックボックスになります。利用者がオン・オフを切り替えることができます。checkedを指定しておくと、初期状態で選択された状態になります。一つのフォームの中で複数のチェックボックスのname属性に同じ値を指定することができます。複数ある中から好きなだけ選べる選択肢を設けるときに使います。
その1 その2 その3
radio
ラジオボタンになります。ラジオボタンはname属性が同じ値のものでグループになり、同じグループ内でいずれかのラジオボタンがオンになると、残りのラジオボタンがオフになります。二者択一、三者択一の選択肢を設けるときに使います。checkedを指定しておくと、初期状態で選択された状態になります。
その1 その2 その3
hidden
画面には表示されない部品になります。CGIに固定的な値を送信するために使います。

アクセシビリティ・ユーザビリティの向上

ボタンの場合はvalue属性の値がラベルになりますが、そのほかの場合はlabel要素でラベルと部品を関連付けたほうがよいです。対応ブラウザであれば、ラベルをクリックするとテキストボックスにフォーカスが移ったり、チェックボックスが選択されるようになります。小さなラジオボタンなどにマウスポインタを重ねなくてもよくなるので、使いやすさが向上します。

<p>
  <label>名前:<input type="text" name="name"></label><br>
  <label>パスワード:<input type="password" name="passwd"></label><br>
  <label>画像:<input type="file" name="image_file"></label><br>
  趣味:
  <label><input type="checkbox" name="hobby" value="car">車</label>
  <label><input type="checkbox" name="hobby" value="music">音楽</label>
  <label><input type="checkbox" name="hobby" value="computer">コンピュータ</label><br>
  性別:
  <label><input type="radio" name="sex" value="male" checked>男</label>
  <label><input type="radio" name="sex" value="female">女</label><br>
  <input type="button" name="btn" value="ボタン">
  <input type="submit" value="送信">
  <input type="reset" value="リセット">
  <input type="hidden" name="datatype" value="profile">
  </p>

accesskey属性やtabindex属性でアクセスキーやタブインデックスを設定することができます。アクセスキーはブラウザの機能とバッティングしてしまわないよう注意が必要です。(例えばアクセスキーに「f」を使うと、IEなどでAlt+Fを押してもメニューが開かなくなるなどの問題があります。)また、タブインデックスも適切に指定しないと利用者が混乱する虞があるので気をつけましょう。

<p>
  <label>名前(N):<input type="text" name="name"
    accesskey="n" tabindex="1"></label><br>
  <label>パスワード(P):<input type="password" name="passwd"
    accesskey="p" tabindex="2"></label><br>
  <label>画像(I):<input type="file" name="image_file"
    accesskey="i" tabindex="3"></label><br>
  趣味:
  <label><input type="checkbox" name="hobby" value="car"
    accesskey="x" tabindex="4">車(X)</label>
  <label><input type="checkbox" name="hobby" value="music"
    accesskey="y" tabindex="5">音楽(Y)</label>
  <label><input type="checkbox" name="hobby" value="computer"
    accesskey="z" tabindex="6">コンピュータ(Z)</label><br>
  性別:
  <label><input type="radio" name="sex" value="male" checked
    accesskey="m" tabindex="7">男(M)</label>
  <label><input type="radio" name="sex" value="female"
    accesskey="f" tabindex="8">女(F)</label><br>
  <input type="button" name="btn" value="ボタン(B)"
    accesskey="b" tabindex="9">
  <input type="submit" value="送信(S)"
    accesskey="s" tabindex="10">
  <input type="reset" value="リセット(R)"
    accesskey="r" tabindex="11">
  <input type="hidden" name="datatype" value="profile">
  </p>

タブインデックスを指定すると、意図しない部品にフォーカスが移って利用者が混乱する可能性があるので、個人的にはタブインデックスは積極的に指定する必要はないと考えています。

Strict DTDの定義

<!ENTITY % InputType
  "(TEXT | PASSWORD | CHECKBOX |
    RADIO | SUBMIT | RESET |
    FILE | HIDDEN | IMAGE | BUTTON)"
   >
<!-- attribute name required for all but submit and reset -->
<!ELEMENT INPUT - O EMPTY              -- form control -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
  checked     (checked)      #IMPLIED  -- for radio buttons and check boxes --
  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
  readonly    (readonly)     #IMPLIED  -- for text and passwd --
  size        CDATA          #IMPLIED  -- specific to each type of field --
  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
  src         %URI;          #IMPLIED  -- for fields with images --
  alt         CDATA          #IMPLIED  -- short description --
  usemap      %URI;          #IMPLIED  -- use client-side image map --
  ismap       (ismap)        #IMPLIED  -- use server-side image map --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  onselect    %Script;       #IMPLIED  -- some text was selected --
  onchange    %Script;       #IMPLIED  -- the element value was changed --
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  >

Information

現在の位置