form.elements中计算了哪些标签?

时间:2013-06-17 18:19:37

标签: javascript html

form.elements计算了什么标记?

<html>
   <head>
      <title>
          form process
      </title>
      <script>
          function showelements()
          {
              var form = document.getElementById("f");
              var n = form.elements.length;
              alert(n);
          }
      </script>
   </head>
   <body>
         <form id="f" action="#" method="post">
            <p>Hello</p>
            <input type="text" />
            <input type="text" />
            <button onclick="showelements()">Click</button>
        </form>
   </body>
</html>

我认为n = 4因为有4个元素:pinputinputbutton,但结果为n = 3

2 个答案:

答案 0 :(得分:5)

元素集合仅包含表单控件(输入,选择,按钮,文本区域和字段集)。

如果您想要表单中的所有元素,请使用frm.getElementsByTagName("*")

答案 1 :(得分:1)

好的这次来自W3C:http://www.w3.org/TR/html5/forms.html#dom-form-elements

  

elements IDL属性必须返回HTMLFormControlsCollection [...]

这是more comprehensive list

  • button
  • fieldset
  • input
  • keygen
  • object
  • output
  • select
  • textarea

“为什么不计算<input type="image" src="" />?”

因为历史原因......

  

[...],但input属性所在的type元素除外   Image Button州,由于历史原因,必须排除在外   来自这个特定的集合[HTMLFormControlsCollection]。

相关问题