先日、Mozilla Developer Networkで、document.forms[x].element
コレクションにtype = "image"という入力要素が含まれていないことが読み取られました。何故なの? Firefox 50.1.0でこれをチェックしたところ、はdocument.forms.elements
に見つかりませんでした。JavaScript:<input type = "image">要素がdocument.forms.elementsに表示されないのはなぜですか?
私は立ち往生していません。私はちょうどなぜこれが(src=""
アトリビュートとそれが表示するイメージの存在以外)であるのか疑問に思っています。
HTMLFormElement.elements性タイプを有する入力 要素を除いて、FORM要素に含まれるすべてのフォームコントロール のHTMLFormControlsCollectionを(HTML 4 HTMLCollection)を返し画像の属性。
WHATWGは言う:
要素IDL属性は入力を除いて、そのフィルタマッチ フォームの所有者がフォーム要素である要素を列挙されたフォーム要素をルートHTMLFormControlsCollection を返す必要があります要素タイプ のタイプ属性がイメージボタン状態にあります。これは、 の歴史的理由のために、この特定のコレクションから除外する必要があります。
画像ボタンの状態は、ユーザ は、ユーザが送信することができ、そこから座標と提出フォーム、あるいはボタン を選択できる画像のいずれかを表します。形。要素はボタン、 、特に送信ボタンです。
おそらく、[*仕様*](https://html.spec.whatwg.org/multipage/forms.html#dom-form-elements)(MDNよりも信頼性が高い)に提供されているリンクに従ってください。 : "* ... type属性がImage Button状態の入力要素を除いて、歴史的な理由からこの特定のコレクションから除外されなければならない*" – RobG
https://html.spec.whatwg.org/multipage /forms.html#dom-form-elementsは「歴史的な理由から*」と言っています。それ以上の説明がなければ、彼らは正当な理由がないことを意味するだろうが、後方互換性を保たないと何かが壊れる。 – Bergi
@ Berg - 非常に初期の[* DOM 2 spec *](https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-76728479)(2003)は、この制限があるので、歴史は非常に長いです。これは、ブラウザが何をするべきではなく、何をするかを記述した "生活仕様"の一例ですか? – RobG