2015-02-21 3 views
0

Я хочу получить все эльюсы в форме. Я могу сделать это с помощью document.getElementById('form').elements, но он возвращает дополнительные свойства (см. Ниже), которые я не хочу. Как его «удалить»?Как получить все элементы из формы?

Код:

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

Вот Ouput:

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; 

будет делать работу хорошо, но я ищу для «элегантных» решений и будет использовать этот тест, если нет никаких.

+0

Вы можете фильтровать результаты –

+0

@NetaMeta: С чем-то вроде 'isNumber (key)'? – Jack

+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

согласно моему мнению, отличный способ сделать это.

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/

+0

ravi, что произошло, если его не вход и его выбор? вам нужно добавить select или textarea .... –

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="[email protected]"/> 
 
     <textarea name="message">Enter Your Message Her</textarea> 
 

 
    </form>

0

Вы можете сделать это с помощью

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

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

}