form 要素
4.10.3 form 要素
Status: Last call for comments
- カテゴリー
- フロー・コンテンツ
- この要素を使うことができるコンテキスト:
- フロー・コンテンツが期待される場所
- コンテンツモデル:
- フロー・コンテンツ。ただし、
form要素が子孫に存在しないこと。 - コンテンツ属性:
- グローバル属性
accept-charsetactionautocompleteenctypemethodnamenovalidatetarget- DOMインタフェース:
-
[OverrideBuiltins] interface HTMLFormElement : HTMLElement { attribute DOMString acceptCharset; attribute DOMString action; attribute boolean autocomplete; attribute DOMString enctype; attribute DOMString method; attribute DOMString name; attribute boolean novalidate; attribute DOMString target; readonly attribute HTMLFormControlsCollection elements; readonly attribute long length; caller getter any item(in unsigned long index); caller getter any namedItem(in DOMString name); void submit(); void reset(); boolean checkValidity(); void dispatchFormInput(); void dispatchFormChange(); };
form 要素は、フォーム関連要素のコレクションを表します。これらのいくつかは、処理のためにサーバーにサブミットすることができる編集可能な値を表すことができます。
accept-charset 属性には、サブミットに使われるべき文字エンコーディングを指定します。指定されれば、この値は、ユニークなスペース区切りトークンの順序セットでなければならず、それぞれのトークンは、ASCII互換文字エンコーディングの参照名でなければいけません。 [IANACHARSET]
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 -
該当のフォームにあるフォーム・コントロールの数を返します。(歴史的理由からイメージ・ボタンを除きます。)
- element = form .
item(index) - form[index]
- form(index)
-
該当のフォームの中にある要素のうち、index 番目の要素を返します。(歴史的理由からイメージ・ボタンを除きます。)
- element = form .
namedItem(name) - form[name]
- form(name)
-
フォームの中から、指定の ID または
name属性を持つフォームコントロールを返します。(歴史的理由からイメージ・ボタンを除きます。)一度、特定の名前を使って要素が参照されたら、たとえその要素の実際の ID または
name属性の値が変更されたとしても、Documentにその要素が存在し続ける限り、このメソッドから、その名前を使って、該当の要素を参照できます。もし、いくつもの項目が一致してしまったら、該当の要素すべてを格納した
NodeListオブジェクトが返されます。 - form .
submit() -
該当のフォームをサブミットします。
- form .
reset() -
該当のフォームをリセットします。
- form .
checkValidity() -
フォームのコントロールがすべて妥当なら、true を返します。そうでなければ false を返します。
- form .
dispatchFormInput() -
すべてのフォーム・コントロールで、
forminputイベントを送出ます。 - form .
dispatchFormChange() -
すべてのフォーム・コントロールで、
formchangeイベントを送出します。
autocomplete と name IDL 属性は、同じ名前の対応するコンテンツ属性を反映しなければいけません。
acceptCharset IDL 属性は、accept-charset コンテンツ属性を反映しなければいけません。
elements DOM 属性は、Document ノードをルートとする HTMLFormControlsCollection を返さなければいけません。このフィルターは、リストされた要素のうち、フォーム・オーナーが該当の form 要素となる要素に一致します。ただし、type 属性が Image Button 状態にある input 要素は除きます。歴史的理由から、この特定のコレクションから除外されなければいけません。
length IDL 属性は、elements コレクションによって表されるノードの数を返さなければいけません。
インデックス付きプロパティのインデックス番号は、常に、elements 属性によって返されるオブジェクトによってその時点でサポートされるインデックス番号となります。
item(index) メソッドは、同じ引数を使って呼び出されたとき、elements コレクション上の同じ名前のメソッドによって返される値を返さなければいけません。
それぞれの form 要素は、名前を要素に結びづけるマッピングを持ちます。それを past names map といいます。それは、名前が変更されたときですら、コントロールの永続的な名前として使われます。
名前付きプロパティの名前は、elements 属性によって返されるオブジェクトによってその時点でサポートされる名前の和集合となります。そして、その名前はその時点では past names map にあります。
namedItem(name) メソッドは、呼び出されたら、次の手順を実行しなければいけません:
-
name が、
elements属性によって返されるオブジェクトの名前付きプロパティの名前の一つなら、次の副手順を実行します:-
elements属性によって返されるオブジェクト上のnamedItem()メソッドに name 引数を渡して返されるオブジェクトを、candidate とします。 -
candidate が要素なら、
form要素の past names map に name から candidate へのマッピングを追加します。もし、同じ名前があれば、それを使って以前のエントリを置き換えます。 -
candidate を返し、この手順を中止します。
-
-
そうでなければ、name は、
form要素の past names map にあるエントリの名前のひとつとなります。そのマップの中から、name と結びづけられているオブジェクトを返します。
もし form 要素の past
names map にリストされた要素が Document から削除されたら、そのエントリは、そのマップから削除されなければいけません。
submit() メソッドは、呼び出されたら、その form 要素自身から、scripted-submit フラグをセットして、その form 要素のフォームをサブミットしなければいけません。
reset() メソッドは、呼び出されたら、form 要素をリセットしなければいけません。
reset() メソッドは、呼び出されたら、次の手順を実行しなければいけません:
-
form要素が locked for reset としてマークされているなら、これらの手順を中止します。 -
form要素を locked for reset としてマークします。 -
form要素の locked for reset のマークを外します。
checkValidity() メソッドが呼び出されたら、ユーザーエージェントは、form 要素の制約を静的にバリデートしなければいけません。そして、制約バリデートの結果が positive なら true を返し、negative なら false を返さなければいけません。
dispatchFormInput() メソッドが呼び出されたら、ユーザーエージェントは、form 要素から forminput イベントをブロードキャストしなければいけません。
dispatchFormChange() メソッドが呼び出されたら、ユーザーエージェントは、form 要素から formchange イベントをブロードキャストしなければいけません。
この例は、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/2010/WD-html5-20100624/forms.html#the-form-element