2017-04-01 10 views
2

次のコードを実行したところ、画像の入力ボタンが子要素のフォームとして扱われないという奇妙な問題が見つかりましたか?誰もがなぜこれが起こるか教えてもらえますか?なぜ画像入力ボタンがJavaScriptのフォームの子要素と見なされないのですか?

window.onload = function(event) { 
 
    formElements = document.forms[0].elements; 
 

 
    //output 2 
 
    console.log(formElements.length); 
 

 
    //output only two elements 
 
    for (var i = 0; i < formElements.length; i++) { 
 
    console.log(formElements[i]); 
 
    } 
 
};
<form id="form" name="form" action="" method="post"> 
 
    <input type="text" name="username" value="" /> 
 
    <button>Submit</button> 
 
    <input type="image" src="http://www.starmarkcabinetry.com/Style%20Library/StarMark/images/right-button-small.png" /> 
 
</form>

答えて

2

HTMLFormElement.elementsプロパティが有する入力 要素を除いて、FORM要素に含まれるすべてのフォームコントロール のHTMLFormControlsCollectionを(HTML 4 HTMLCollection)を返しimageの型属性です。あなたが同じを取得するためにchildrenを使用することができますListed Items

に関連HTMLFormElement.elements

仕様のため

MDNドキュメント。

私はこのようになっている理由を見つけることができません、私は入力が悪いと感じています[type = image] Web APISと密接に協力している人が、冥王星

で歴史的な理由は、冥王星が理解しやすいhere

+1

見つけることができます。私たちは地球が何であったかについて何の定義がなかったので)それは惑星だったことはありません、私たちは1、それを呼ばれます。私たちは無知で、少なくとも1000年間学校の子供たちに嘘をつきました。そして今、私たちは混乱を取り除いています。 –

+1

この理由は、関連する質問に答えられています。私は今、この質問をの重複としてマークしました。 – BoltClock

関連する問題