2012-01-12 86 views
1

我正在尝试做一个通用的“检查空”javascript函数。我想我会做的是的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

不错!我猜'input []'返回一个填充'formVar'数组的数字?我不太明白这是如何工作的:S – 2012-01-12 05:59:43

+1

'formVar [“input []”]'返回一个dom元素的集合。在这种情况下,那些名称为“input []”的输入 – 2012-01-12 06:03:47

2

您可以使用下面的图输出表单中输入元素的数量:

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

这假定您有一个名为search的表单。或者你可以用你的formVar来代替dcoument.forms['search']部分