如何从表单中检索所有元素?

时间:2015-02-21 03:06:57

标签: javascript html dom

我希望获得表格中的所有元素。我可以使用document.getElementById('form').elements来做到这一点,但它会返回我不想要的额外属性(见下文)。我如何"删除"它?

代码:

var result = document.getElementById('form').elements;
for(var key in result)
{
  console.log(key, ' = ', result[key]);
}

这是输出:

0 = <input id="A" type="text" name="A" value="a">
1 = <input id="B" type="text" name="B" value="b">
2 = <input type="checkbox" name="C">
namedItem = namedItem()
item = item()
@@iterator = @@iterator()
length = 3

我只想要HTML元素,即值0,1和2.像这样:

0 = <input id="A" type="text" name="A" value="a">
1 = <input id="B" type="text" name="B" value="b">
2 = <input type="checkbox" name="C">

Live example.

我知道这样一个简单的测试:

if(!isNumber(key))
        continue;

会做得很好,但我正在寻找一个优雅的&#34;解决方案,如果没有,将使用此测试。

4 个答案:

答案 0 :(得分:2)

最快的方式:

var result = document.getElementById('form').elements;
console.log(result);

for(var key in result)
{
    if(result.hasOwnProperty(key))
        console.log(key, ' = ', result[key]);

}

http://jsfiddle.net/8Lt6xrb8/2/

答案 1 :(得分:1)

根据我的观点,这样做的好方法是。

if(!isNumber(key))
    continue; 

另一种方法是检查节点名称。

var result = document.getElementById('form').elements;
for(var key in result)
{
    if(result.hasOwnProperty(key))
  console.log(key, ' = ', result[key]);

}

jsfiddle =&gt; http://jsfiddle.net/v9vb3t26/

答案 2 :(得分:0)

试试这个很酷的方式

 var myForm = document.getElementById("myForm");
    //Extract Each Element Value
    for (var i = 0; i < myForm.elements.length; i++) {
    console.log(myForm.elements[i].value);
    }
<form id="myForm" name="myForm">
        <input type="text" name="User" value="Arsalan"/>
        <input type="password" name="pass" value="123"/>
        <input type="number" name="age" value="24"/>
        <input type="text" name="email" value="johndoe@test.com"/>
        <textarea name="message">Enter Your Message Her</textarea>

    </form>

答案 3 :(得分:0)

您可以通过

执行此操作
var result = document.getElementById('form').elements;
console.log(result);

for(var key in result)
{
    if(result.hasOwnProperty(key))
        console.log(key, ' = ', result[key]);

}