2013-09-25 38 views
3

我有一個表單,因此有一個添加按鈕,所以我的用戶可以一次向該網站提交多個人。Javascript獲取表單數組值

起初形式有一個輸入填寫個人姓名,下面

<input type="text" name="name[]" value="Name" /> 

一個例子,如果他們打的添加按鈕另一個附加讓我留下了以下

<input type="text" name="name[]" value="Name" /> 
<input type="text" name="name[]" value="Name" /> 

然後,當他們點擊提交,我試圖讓每名在Javascript並通過他們,我已經試過這個值循環,但它不工作

var inputs = document.getElementById('formIDhere').getElementsByTagName('name'); 
alert(inputs.length); 

我從來沒有得到過警告,如果我只設置了這樣

for(int i=0; i<inputs.length; i++) 

沒有出現環路,通過名字的價值循環[]在JavaScript將是任何幫助非常感謝

+0

你爲什麼不顯示提交按鈕的代碼? – epascarello

+0

嘗試name =「name」 – MichaC

+0

FYI:getElementsByTagName(「name」)正在尋找 Duncan

回答

3

我想你可以嘗試跨瀏覽器:

var inputs = document.querySelectorAll("#formIDHere input[name='name[]']"); 
alert(inputs.length); 
for (i = 0; i < inputs.length; i++) { 
    // your code here 
} 
+0

正常工作,謝謝! – user577732

0

我認爲你可以使用document.getElementById('formIDhere').elements.name

它會給你一個所有值的數組。

0

你的錯誤是使用getElementsByTagName,它要求一個叫<name>標籤,當然你不用它,嘗試類型設置爲輸入例如和使用jquery $('className')必將得到的結果取它正確,或者使用DOM你仍然可以使用 document.getElementById('form').elements.name但還是這樣可能不是安全的,除非仔細測試

0

getElementsByTagName返回ELE數組在參數中指定whoose標籤名稱。 在html中沒有元素whoose標籤名稱是name

name是給html元素的屬性。 要獲取元素基於名稱則可以使用

var ele=document.getElementsByName('whatevername'); 

ele將包含他的名字被指定元素的數組。然後你可以使用你的循環遍歷每個元素。

0

這是什麼樣的形式元素是

var inputs = document.getElementById('formIDhere').elements["name[]"]; 
alert(inputs.length); 
for (i = 0; i < inputs.length; i++) { 
    // your code here 
} 
1

簡單的方法:

var names=document.getElementsByName('name[]'); 

for(key=0; key < names.length; key++) { 
    alert(names[key].value); 

    //your code goes here 
}