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个元素:p
,input
,input
,button
,但结果为n = 3
。
答案 0 :(得分:5)
元素集合仅包含表单控件(输入,选择,按钮,文本区域和字段集)。
如果您想要表单中的所有元素,请使用frm.getElementsByTagName("*")
。
答案 1 :(得分:1)
好的这次来自W3C:http://www.w3.org/TR/html5/forms.html#dom-form-elements
elements
IDL属性必须返回HTMLFormControlsCollection
[...]
button
fieldset
input
keygen
object
output
select
textarea
“为什么不计算<input type="image" src="" />
?”
因为历史原因......
[...],但
input
属性所在的type
元素除外 Image Button州,由于历史原因,必须排除在外 来自这个特定的集合[HTMLFormControlsCollection]。