2012-01-12 4 views
1

Я пытаюсь создать универсальную функцию проверки «Проверить пустую». То, что я понял, я бы было onsubmit получить количество input коробка в форме и принять его длину примерно так:Javascript - получить массив входов из формы

я передать имя формы в функцию через this.name и назвал его formVar

var len = formVar.input[].value; 

Тогда я использовал бы эту переменную как предел для цикла, чтобы я мог проверить каждый из них и посмотреть, пуст ли он. В чем проблема с приведенным выше фрагментом кода? Есть ли способ получить несколько входов в форме?

ответ

2

DEMO

input[] не является допустимым идентификатор в JavaScript, так что вам нужен, чтобы получить доступ к этим входам в качестве индекса строки в вашей форме:

var allInputs = formVar["input[]"]; 
var len = allInputs.length; 
var anyChecked = false; 

for (var i = 0; i < len; i++) 
    if (allInputs[i].checked){ 
     anyChecked = true; 
     break; 
    } 

if (!anyChecked) 
    alert("all checkboxes are empty!"); 
+0

Nice! Я думаю, 'input []' возвращает число, которое заполняет массив 'formVar'? Я не совсем понимаю, как это работает: S –

+1

'formVar [" input [] "]' возвращает коллекцию элементов dom. В этом случае эти входы с именем «input []] –

2

Вы можете использовать следующий рисунок из числа вводимых элементов в вашей форме:

document.forms['search'].getElementsByTagName('input').length 

это предполагает, что у вас есть форма с именем search. или вы можете использовать formVar для замены dcoument.forms['search'] часть