<input>…… フォームを構成する様々な入力部品を作成する
<input>タグは、フォーム(<form>~</form>)を構成する様々な入力部品を作成する際に使用します。
■フォーム部品の種類を指定するtype属性
type属性は、フォーム部品の種類を指定する際に使用します。<input>要素は、type属性にどのような値を指定するかによって、一行テキストボックス・チェックボックス・ラジオボタン・送信ボタン・リセットボタン等、フォーム部品の種類を指定し分けることができます。type属性の初期値は、type=”text”(一行テキストボックス)です。
■type属性の値
- type="hidden"
- 画面上は表示されない隠しデータを指定する
- type="text"
- 一行テキストボックスを作成する(初期値)
- type="search"
- 検索テキストの入力欄を作成する
- type="tel"
- 電話番号の入力欄を作成する
- type="url"
- URLの入力欄を作成する
- type=”email”
- メールアドレスの入力欄を作成する
- type="password"
- パスワード入力欄を作成する
- type=”datetime”
- UTC(協定世界時)による日時の入力欄を作成する
- type=”date”
- 日付の入力欄を作成する
- type=”month”
- 月の入力欄を作成する
- type=”week”
- 週の入力欄を作成する
- type=”time”
- 時間の入力欄を作成する
- type=”datetime-local”
- UTC(協定世界時)によらないローカル日時の入力欄を作成する
- type=”number”
- 数値の入力欄を作成する
- type=”range”
- レンジの入力欄を作成する
- type=”color”
- 色の入力欄を作成する
- type="checkbox"
- チェックボックスを作成する
- type="radio"
- ラジオボタンを作成する
- type="file"
- サーバーへファイルを送信する
- type="submit"
- 送信ボタンを作成する
- type="image"
- 画像ボタンを作成する
- type="reset"
- リセットボタンを作成する
- type="button"
- 汎用ボタンを作成する
HTML5では、input要素のtype属性に指定できる値の種類が増えています。それぞれの値を指定した場合、例えば、<input type="email">を指定すると、この属性値をサポートしているFirefox4・Opera10・Google Chromeなどのブラウザでは、送信ボタンを押したときに入力されている値がメールアドレスとして妥当かどうかチェックしてくれます。
以下は、HTML5で<input>要素のtype属性に追加される値を並べたサンプルソースです。これらの値を比較的よくサポートしているOperaでは、<input type="date">などの日付型の値を指定するとカレンダー入力になったり、<input type="range">でレンジ入力を指定すると、マウスで操作できるレンジバーが表示されるなど、ユーザーの入力補助となるインターフェースが拡張されています。
■HTML5での使用例
[html]
<form action="xxx.php" method="post"><label>メール(type="email"):<input type="email" name="email"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>URL(type="url"):<input type="url" name="url"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>検索(type="search"):<input type="search" name="search"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>電話(type="telephone"):<input type="tel" name="tel"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>数値(type="number"):<input type="number" name="number"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>日付(type="date"):<input type="date" name="date"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>日時(type="datetime"):<input type="datetime" name="datetime"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>ローカル日時(type="datetime-local"):<input type="datetime-local" name="datetime-local"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>月(type="month"):<input type="month" name="month"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>週(type="week"):<input type="week" name="week"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>時間(type="time"):<input type="time" name="time"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>レンジ(type="range"):<input type="range" name="range"></label><input type="submit" value="送信"></form>
<form action="xxx.php" method="post"><label>色(type="color"):<input type="color" name="color"></label><input type="submit" value="送信"></form>
[/html]
■type属性以外の属性
<input>には、type属性以外にも多くの属性が用意されています。これらの属性は、type属性にどの値が指定されているかによって指定できるかどうかが決まります。例えば、入力必須であることを示すrequired属性は、type=”text”やtype=”file”などの場合には指定することができますが、type=”hidden”などの場合には指定することはできません。
form属性は、どのフォームと関連付けるかを指定する際に使用します。<input>は初期値では直近の親要素となる<form>と関連付けられますが、<form>のid属性の値と<input>のform属性の値を一致させることで、<input>要素を特定のフォームと関連付けることができます。<input>要素を任意の場所に配置できるので、ウェブアプリケーションなどを制作する際には便利かもしれません。
■HTML4.01からHTML5へのバージョンアップによる変更点
HTML4.01では、input要素には揃え位置を指定するalign属性が、非推奨とされながらも用意されていました。HTML5では、input要素のalign属性は廃止されています。揃え位置の指定にはCSSを使用してください。
一方で、HTML5では、input要素に新しくautocomplete属性・autofocus属性・form属性・formaction属性・formenctype属性・formmethod属性・formnovalidate属性・formtarget属性・height属性・list属性・max属性・min属性・multiple属性・pattern属性・placeholder属性・required属性・step属性・width属性が追加されています。
また、前述の通り、type属性に指定できる値の種類が増えています。
■使用できる属性
- accept属性
- type=”file”の場合に、どのタイプのファイルがサーバ側で受け取ることができるかを指定
- alt属性
- type=”image”の場合に、画像の代替テキストを指定(type=”image”の場合には必須属性)
- autocomplete属性
- 入力候補を提示して入力内容を自動補完する(on・off・default)(初期値はdefault)
- autofocus属性
- 自動フォーカスを指定する(autofocus)
- checked属性
- ラジオボタンやチェックボックスをあらかじめチェック済みにする(checked)
- disabled属性
- 操作を無効にする(disabled)
- form属性
- どのフォームと関連付けるかを<form>のid名で指定
- formaction属性
- 送信先URLを指定
- formenctype属性
- 送信するデータの形式を指定(application/x-www-form-urlencoded・multipart/form-data・text/plain)(初期値はapplication/x-www-form-urlencoded)
- formmethod属性
- 送信方法(HTTPメソッド)を指定(get・post)(初期値はget)
- formnovalidate属性
- 入力されたデータの妥当性を確認しない(formnovalidate)
- formtarget属性
- フォーム送信するターゲット先を指定(_blank・_self・_parent・_top・任意のターゲット名)
- height属性
- type=”image”の場合に、画像の高さを指定
- list属性
- ユーザーに入力候補として提案するデータリストの要素を、その要素のid属性の値で指定する
- max属性
- 入力できる最大値を指定する
- maxlength属性
- 入力可能な最大文字数を指定
- min属性
- 入力できる最小値を指定する
- multiple属性
- 複数の値を入力・選択できるようにする
- name属性
- フォーム部品に名前をつける
- pattern属性
- 正規表現で入力値のパターンを指定する
- placeholder属性
- 入力欄に初期表示する内容を指定する
- readonly属性
- ユーザーによるテキスト編集を不可にして読み取り専用にする(readonly)
- required属性
- 入力必須にする
- size属性
- 表示文字数を指定(1以上の正の整数)
- src属性
- type=”image”の場合に、画像ファイルのURLを指定する(type=”image”の場合には必須属性)
- step属性
- 入力欄で刻むステップ値を指定する
- type属性
- フォーム部品の種類を指定する(初期値はtext)
- value属性
- 値を指定
- width属性
- type=”image”の場合に、画像の幅を指定
■HTML5での使用例
[html]
<form action="xxxxx.php" method="post" enctype="multipart/form-data">
<p><label>名前:<input type="text" name="name" size="30" maxlength="20"></label></p>
<p><label>パスワード:<input type="password" name="pass" size="6" maxlength="4"></label></p>
<p>学年:
<label><input type="radio" name="gakunen" value="1">1年生</label>
<label><input type="radio" name="gakunen" value="2">2年生</label>
<label><input type="radio" name="gakunen" value="3">3年生</label>
<label><input type="radio" name="gakunen" value="4">4年生</label>
<label><input type="radio" name="gakunen" value="5">5年生</label>
<label><input type="radio" name="gakunen" value="6">6年生</label>
</p>
<p>好きな課目:
<label><input type="checkbox" name="kamoku" value="kokugo">国語</label>
<label><input type="checkbox" name="kamoku" value="eigo">英語</label>
<label><input type="checkbox" name="kamoku" value="sansu">算数</label>
<label><input type="checkbox" name="kamoku" value="rika">理科</label>
<label><input type="checkbox" name="kamoku" value="syakai">社会</label>
<label><input type="checkbox" name="kamoku" value="taiiku">体育</label>
</p>
<p><label>宿題ファイル:<input type="file" name="syukudai"></label></p>
<p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</p>
</form>
[/html]