form 要素
4.10.3 form 要素
- カテゴリー
- フロー・コンテンツ
- この要素を使うことができるコンテキスト:
- フロー・コンテンツが期待される場所
- コンテンツモデル:
- フロー・コンテンツ。ただし、
form要素が子孫に存在しないこと。 - コンテンツ属性:
- グローバル属性
accept-charsetactionautocompleteenctypemethodnamenovalidatetarget- DOMインタフェース:
-
[OverrideBuiltins] interface HTMLFormElement : HTMLElement { attribute DOMString acceptCharset; attribute DOMString action; attribute DOMString autocomplete; attribute DOMString enctype; attribute DOMString encoding; attribute DOMString method; attribute DOMString name; attribute boolean noValidate; attribute DOMString target; readonly attribute HTMLFormControlsCollection elements; readonly attribute long length; caller getter any (in unsigned long index); caller getter any (in DOMString name); void submit(); void reset(); boolean checkValidity(); };
form 要素は、フォーム関連要素のコレクションを表します。これらのいくつかは、処理のためにサーバーにサブミットすることができる編集可能な値を表すことができます。
accept-charset 属性には、サブミットに使われるべき文字エンコーディングを指定します。指定されれば、この値は、ユニークなスペース区切りトークンの順序セットでなければいけません。大文字・小文字は区別されません。それぞれのトークンは、ASCII互換文字エンコーディングの参照 MIME 名に一致しなければいけません。大文字・小文字は区別されません。 [IANACHARSET]
name 属性は、forms コレクションの中にある form 要素の名前を表します。この値は空文字であってはならず、それが属する forms コレクションに form 要素があれば、その中でユニークでなければいけません。
autocomplete 属性は列挙属性です。この属性は 2 つの状態を持ちます。on キーワード は、on 状態に相当し、off キーワードは、off 状態に相当します。この属性を省略することも可能です。指定がない場合のデフォルトは on 状態です。off 状態とは、デフォルトで、フォーム内の input 要素が off にセットされた最終オートコンプリート状態を持つことを表します。on 状態とは、デフォルトで、フォーム内の input 要素が on にセットされた最終オートコンプリート状態を持つことを表します。
action, enctype, method, novalidate, target 属性は、フォーム・サブミット用の属性です。
- form .
elements -
該当のフォームにあるフォーム・コントロールの
HTMLCollectionを返します。(歴史的理由からイメージ・ボタンを除きます。) - form .
length -
該当のフォームにあるフォーム・コントロールの数を返します。(歴史的理由からイメージ・ボタンを除きます。)
- form[index]
- form(index)
-
該当のフォームの中にある要素のうち、index 番目の要素を返します。(歴史的理由からイメージ・ボタンを除きます。)
- form[name]
- form(name)
-
フォームの中から、指定の ID または
name属性を持つフォームコントロールを返します。(歴史的理由からイメージ・ボタンを除きます。)一度、特定の名前を使って要素が参照されたら、たとえその要素の実際の ID または
name属性の値が変更されたとしても、Documentにその要素が存在し続ける限り、このメソッドから、その名前を使って、該当の要素を参照できます。もし、いくつもの項目が一致してしまったら、該当の要素すべてを格納した
NodeListオブジェクトが返されます。 - form .
submit() -
該当のフォームをサブミットします。
- form .
reset() -
該当のフォームをリセットします。
- form .
checkValidity() -
フォームのコントロールがすべて妥当なら、true を返します。そうでなければ false を返します。
autocomplete IDL
属性は、同じ名前のコンテンツ属性を反映しなければいけません。ただし、既知の値に限定されます。
name IDL
属性は、同じ名前のコンテンツ属性を反映しなければいけません。
acceptCharset IDL 属性は、accept-charset コンテンツ属性を反映しなければいけません。
elements IDL 属性は、Document ノードをルートとした HTMLFormControlsCollection を返さなければいけません。そのフィルターは、フォーム・オーナーが form 要素となるリスト化要素に一致します。ただし、type 属性が Image Button 状態にある input 要素は除きます。これは、歴史的な理由によるもので、この特定のコレクションから除外されなければいけません。
length IDL
属性は、elements コレクションによって表されるノードの数を返さなければいけません。
インデックス付きプロパティのインデックス番号は、常に、elements 属性によって返されるオブジェクトによってその時点でサポートされるインデックス番号となります。
form 要素が インデックス化プロパティ取得のためにインデックス化されたとき、ユーザーエージェントは、引数にインデックスが指定されて呼び出されたとき、その elements コレクションで item メソッドによって返される値を返さなければいけません。
それぞれの form 要素は、名前を要素に結びづけるマッピングを持ちます。それを past names map といいます。それは、名前が変更されたときですら、コントロールの永続的な名前として使われます。
インデックス付きプロパティ名は、その時点で elements 属性によって返されるオブジェクトによってサポートされた名前の和集合です。そして、その時点で past names map にある名前です。
form 要素が 名前付きプロパティ取得のためにインデックス化される とき、ユーザーエージェントは、次の手順を実行しなければいけません:
-
name が
elements属性によって返されるオブジェクトのインデックス付きプロパティ名のひとつなら、次の副手順を実行します。-
candidate を、
elements属性によって返されるオブジェクトにて引数に name を与えたときにnamedItem()メソッドが返すオブジェクトとします。 -
candidate が要素なら、name から、
form要素の past names map にある candidate へのマッピングを追加します。もし、同じ名前のエントリーがすでに存在していれば、置き換えます。 -
candidate を返し、これらの手順を中止します。
-
-
そうでなければ、name は、
form要素の past names map にあるエントリーのうちのひとつの名前となります。そのマップにある name と結び付けたオブジェクトを返します。
form 要素の past
names map に列挙された要素が Document から削除されたら、そのエントリーは、そのマップから削除されなければいけません。
submit() メソッドは、呼び出されたら、その form 要素自身から form 要素をサブミットしなければいけません。その際には、scripted-submit フラグをセットします。
reset() メソッドは、呼び出されたら、次の手順を実行しなければいけません:
-
form要素がリセットのためにロックされているとして記録されているなら、これらの手順を中止します。 -
form要素を、リセットのためにロックされたと記録します。 -
form要素がリセットのためにロックされているとして記録されているのを解除します。
checkValidity() メソッドが呼び出されたら、ユーザーエージェントは、その form 要素の制約を静的にバリデーションします。そして、その制約バリデーションの結果が positive なら true を、negative なら false を返します。
この例は、2 つの検索フォームを示しています:
<form action="http://www.google.com/search" method="get"> <label>Google: <input type="search" name="q"></label> <input type="submit" value="Search..."> </form> <form action="http://www.bing.com/search" method="get"> <label>Bing: <input type="search" name="q"></label> <input type="submit" value="Search..."> </form>
※ 原文:http://www.w3.org/TR/2011/WD-html5-20110525/forms.html#the-form-element