如何从表单中检索所有元素?
How do I retrieve all elements from a form?
我想在一个表单中获取所有元素。我可以使用 document.getElementById('form').elements
来做到这一点,但它 returns 我不想要的额外属性(见下文)。我怎么"remove"呢?
代码:
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">
我知道像这样一个简单的测试:
if(!isNumber(key))
continue;
会很好地完成工作,但我正在寻找 "elegant" 解决方案,如果没有任何解决方案,我将使用此测试。
最快的方式:
var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}
根据我的看法,这样做的好方法是。
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 => http://jsfiddle.net/v9vb3t26/
试试这个很酷的方式
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>
您可以通过
var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}
我想在一个表单中获取所有元素。我可以使用 document.getElementById('form').elements
来做到这一点,但它 returns 我不想要的额外属性(见下文)。我怎么"remove"呢?
代码:
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">
我知道像这样一个简单的测试:
if(!isNumber(key))
continue;
会很好地完成工作,但我正在寻找 "elegant" 解决方案,如果没有任何解决方案,我将使用此测试。
最快的方式:
var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}
根据我的看法,这样做的好方法是。
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 => http://jsfiddle.net/v9vb3t26/
试试这个很酷的方式
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>
您可以通过
var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}