2012-01-12 125 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']部分