input

1. 基本情報

説明 各種入力項目を提供する
語源 INPUT
所属モジュール Forms
所属コンテントセット Formctrl
内容 なし
内容の書式 EMPTY
関連項目 button, textarea
公式な実装 DTD

2. 属性

2-1. 一般属性

属性 属性値の型 説明
Common [属性コレクション]

XHTMLの要素が大抵持っている、一般的な属性を集めたコレクションです。

2-2. 固有属性

属性 属性値の型 説明
type [選択]

入力項目の種類を指定します。

  • text [既定値] - 単数行テキストにします。
  • password - 単数行パスワードにします。入力された文字は保護の為一種類の文字になります。
  • checkbox - チェックボックスにします。
  • radio - ラジオボタンにします。
  • hidden - 隠し項目にします。プログラマが、ユーザの目に見えない所で値を受け渡しをするのに使います。
  • file - ファイルをアップロードする為のファイル名指定用単数行テキストにします。自動的に参照ボタンが付きます。
  • image - 画像ボタンにします。サーバーサイドイメージマップと組み合わせる事ができます。
  • submit - サブミットボタンにします。押すと、フォームの入力内容が送信されます。
  • reset - リセットボタンにします。押すと、フォームのコントロールの内容が全て初期値に戻ります。
  • button - ただのボタンにします。submitやresetのような特別な働きはしません。イベント処理属性と共に使う事が多いです。
name CDATA

コントロールの名前を指定します。ラジオボタンやチェックボックスでは、同一フォーム内で値を重複させる事がままあります。

value CDATA

テキスト入力欄ならその初期値を、チェックボックスまたはラジオボタンなら、チェックされた状態でプログラムにデータが送信される時の値を、ボタンならボタンに表示され、送信もされる文字列を指定します。

maxlength Number (CDATA)

入力できる最大文字数を指定します。

size Number (CDATA)

幅を指定します。テキスト入力欄なら文字数を、それ以外であればピクセル値で指定します。

checked [選択]

チェックボックス、ラジオボタンの初期値をチェック済みにするかどうか指定します。

  • checked - チェックボックス、ラジオボタンの初期値をチェック済みにします。
disabled [選択]

使用不可にするかどうか指定します。

  • disabled - 使用不可(選択不可及び入力不可)にします。
readonly [選択]

読み取り専用にするかどうか指定します。

  • readonly - 読み取り専用(選択可及び入力不可)にします。
accept ContentTypes (CDATA)

action属性で指定したプログラムが処理可能なコンテントタイプを指定します。

src URI (CDATA)

type属性でimageを指定した時に使う画像のURIを指定します。

alt Text (CDATA)

画像が利用できない時、あるいは利用しない時に表示される代替テキストを記述します。

usemap IDREF

クライアントサイドイメージマップを使用する時、使用するmap要素のID参照を指定します。

ismap [選択]

type属性がimageの時に、画像ボタンをサーバーサイドイメージマップとして扱うかどうかを指定します。

  • ismap - 画像ボタンをサーバーサイドイメージマップとします。クリックした座標がプログラムに送られます。
onfocus Script (CDATA)

フォーカスを得た時に実行するスクリプトを記述します。

onblur Script (CDATA)

フォーカスを失った時に実行するスクリプトを記述します。

onselect Script (CDATA)

入力されたテキストが選択された時に実行するスクリプトを記述します。

onchange Script (CDATA)

入力内容が変更された時でフォーカスを失った時に実行するスクリプトを記述します。

accesskey Character (CDATA)

キーボードショートカットを指定します。対応するユーザーエージェントでは、Alt + accesskey などでそのリンクへ瞬時に移動できます。

tabindex Number (CDATA)

タブインデックスを指定します。通常、Tabが押されるとユーザーエージェントはリンクを最初から順番に辿っていきますが、この属性で明示的に指定する事ができます。

3. 解説

3-1. 概要

input要素は、フォームの各種入力項目を作ります。type属性によって実に様々な形態を取るので、一度にはその機能を把握しきれないかも知れません。必要が出た時にそれぞれの使い方を覚えていくといいでしょう。

この要素はコントロールの種類もさる事ながら、属性の数も多く、しかも特定の種類のコントロールとしか組み合わせられないものも存在するので、主な固有属性は併せて紹介していきますが、コントロール名を与えるname属性と、初期値を指定するvalue属性はほぼ全てのコントロールが持てます

3-2. テキストボックス

単数行のテキスト入力欄です。キーボード入力などによって、任意の文字列を入力させる事ができます。type属性textにして作成します。

[プログラムコード開始]

<input type="text" name="handle-name" value="ハンドル"/>

[プログラムコード終了]

テキストボックスの初期値はvalue属性で与えられます。この値はユーザが変更する事ができ、最終的に送られるのはユーザが加工した値です。勿論何も手をつけなければ初期値が送られるでしょう。

maxlength属性size属性などを指定する事ができます。

3-3. テキストボックス(パスワード)

単数行のテキスト入力欄で、キーボード入力などによって、文字列を入力させる事ができますが、入力された文字は画面上で読み取られないように隠されます(例えば、アスタリスク一種類に置き換えられるとか)。勿論それは画面の上だけで、送信時には入力されたままの文字列が送られます。type属性passwordにして作成します。

[プログラムコード開始]

<input type="password" name="delete-pasword" value="pass"/>

[プログラムコード終了]

textでなくpasswordを使う事は、軽いパスワード保護にはなりますが、気が紛れる程度でしかありません。フォームの内容がサーバに送信される時には、前述の通り生の入力内容が送られます。これは、SSL (Secure Socket Layer)などを利用して通信を暗号化すれば転送時の盗聴はまず防げますが、サーバ上に生のままで保存しておくとそれを覗き見られる恐れもあります。通信にSSLを使って、サーバ上ではハッシュを記録しておくとそれなりに安心です。詳しくはmethod属性を参照して下さい。

maxlength属性size属性などを指定する事ができます。

3-4. チェックボックス

二者択一の選択肢を提供します。選択する事で、チェック状態をトグルさせる事ができます。チェックボックスはtype属性checkboxにして作成します。

[プログラムコード開始]

<input type="checkbox" name="subscribe" value="newsletter"/>

[プログラムコード終了]

チェックボックスの値は不変、つまりvalue属性が送られます。オンであればサクセスフルになり、オフであれば非サクセスフルになるので、データセットが送られて来るか来ないかでチェック状態を確認できます。

checked属性などを指定する事ができます。

3-5. ラジオボタン

択一の選択肢を提供します。選択する事でオンにでき、同じname属性を持つ他のラジオボタンをオフにできます。ラジオボタンはtype属性radioにすれば作れます(radiobuttonではないので注意)。

[プログラムコード開始]

<div><input type="radio" name="agreement" value="agreed"/>同意する</div>
<div><input type="radio" name="agreement" value="disagreed"/>同意しない</div>

[プログラムコード終了]

ラジオボタンの値も不変で、サクセスフルなラジオボタンのvalue属性がそのまま送られます。また、上の例のように、ラジオボタンでは同じカテゴリの選択肢に同じname属性を持たせるのが普通です。

checked属性などを指定する事ができます。

3-6. 隠しコントロール

ユーザの目には一切触れないコントロールです。表示こそされませんが、データセットは送られます。type属性hiddenにすると作られます。

[プログラムコード開始]

<input type="hidden" name="session" value="9901EEB4085563E3"/>

[プログラムコード終了]

隠しコントロールの値も変わる事がありません。value属性の値がそのまま送られます。

ちなみに、隠しコントロールが表示されないのはユーザの利便性を鑑みているからであり、見られてはまずいものを隠す為ではありません。ソースを見られれば筒抜けです。隠しコントロールは、ユーザが見ても利益が無いと思われるものを前に出さないようにするだけです。

3-7. ファイル選択欄

ローカルコンピュータ上のファイルをリモートコンピュータに転送する為のものです。砕けて言えば、 こちら側からファイルをアップロードする事ができます。type属性fileのものがそれです。

[プログラムコード開始]

<input type="file" name="local-file"/>

[プログラムコード終了]

ファイル選択欄ではテキストボックスと違い、通常初期値を与えません。ほぼ無意味だからです。通常のテキストボックスの場合は、value属性に初期値を書く事が推奨されてはいます(ユーザーエージェントの下位互換性の為)。実際に値として送られるものは、ファイル選択欄に入力されたファイル名ではなく、そのファイルの内容です。

accept属性などを指定する事ができます。

3-8. 画像ボタン

ラベル文字列ではなく画像を貼り付けたフラットな送信ボタンです。type属性imageにして作成します。

[プログラムコード開始]

<input type="image" name="search-je" src="/image/search-je.png" alt="和英"/>

[プログラムコード終了]

グラフィカルブラウザで画像ボタンをクリックすると、画像の座標が送られます。例えば、上の例で、画像の左上から右に13ピクセル、下に25ピクセルの場所でクリックすると、search-je.x=13&search-je.y=25が送られます。つまり、 コントロール名.x=x座標 コントロール名.y=y座標 の二つがこのコントロールのデータセットとして送られてきます。テキストブラウザを使っていたり、ポインティングデバイスで選択したのではない場合、座標には( 0, 0 )が使われるでしょう。

画像ボタンをサーバーサイドイメージマップ(Server-side Image Mapモジュール参照)としても使えます。サーバーサイドイメージマップとしてみなされるようにするにはismap属性を使いますが、この属性は(指定しなくても座標が送られる為)実質的な効果はありません。

src属性alt属性をほぼ必須の属性として使い、場合によってはismap属性も指定します。value属性を指定すればそれも送られてくるはずですが、ユーザーエージェントによっては送ってくれない事があります。

3-9. 送信ボタン

普通のラベル文字列を備えた送信ボタンです。押された時に、フォームの内容を送信します。type属性submitにして作ります。

[プログラムコード開始]

<input type="submit" name="submit" value="送信"/>

[プログラムコード終了]

ラベル文字列はvalue属性で指定します。これはユーザに向けて表示されるとともに、name属性があればその値としても使われます。

送信ボタンはbutton要素でも作る事ができる為、どうしても駄目という訳でなければbutton要素を使う方がメリットがあるでしょう。

3-10. リセットボタン

普通のラベル文字列を備えたリセットボタンです。押された時に、フォームの全てのコントロールの値を初期値に戻します。type属性resetにすると作れます。

[プログラムコード開始]

<input type="reset" value="リセット"/>

[プログラムコード終了]

ラベル文字列は、同様にvalue属性で指定します。これはユーザに向けて表示されるしか用途がありません。name属性を持ったとしても、リセットボタンがサクセスフルになる事は無いからです。

リセットボタンは、あればなるほど便利ですが、うっかり間違えて押してしまうと(特に長時間かけて内容を入力した場合は)うんざりする為、つける場合はonreset属性とスクリプトで確認を取ったほうがいいかも知れません。リセットボタン自体無くても構わない事の方が多い事すらあるかも知れません。

リセットボタンもbutton要素でも作る事ができる為、どうしても駄目という訳でなければbutton要素を使う方がメリットがあるでしょう。

3-11. ただのプッシュボタン

普通のラベル文字列を備えた何という事は無いボタンです。押された時の規定の動作も無い上、常に非サクセスフルです。使い方は殆ど、イベント発火でしょう。つまり、onclick属性などと一緒に使います。作り方はtype属性buttonにするだけです。

[プログラムコード開始]

<input type="button" value="年齢の計算" onclick="CalculateAge();"/>

[プログラムコード終了]

ラベル文字列は、これもvalue属性で指定します。非サクセスフルなのでname属性には意味がありません。

このボタンもbutton要素でも作る事ができる為、どうしても駄目という訳でなければbutton要素を使う方がメリットがあるでしょう。

3-12. 使用例

解説を参照して下さい。

[input]
Published : 2006-03-26T09:00:00+09:00
Last Modified : 2006-12-07T09:00:00+09:00
Table of Contents : 要素目次
Index : 要素索引
Verified with : Valid XHTML 1.1
Copyright © 2006  E+X.