2011-05-26 30 views
1

我有一些輸入,由他們的名字組合成一個陣列形式:使用文檔表單對象時,如何引用按名稱分組到數組中的表單元素?

<form name="myForm"> 
    <input type="text" name="sibling[0][name]" /> 
    <input type="text" name="sibling[0][dob]" /> 

    <input type="text" name="sibling[1][name]" /> 
    <input type="text" name="sibling[1][dob]" /> 
</form> 

我試圖使用JavaScript通過名稱來訪問元素。我將如何參考它?我已經試過了諸如:

JS:

var formEl = document.myForm.elements[sibling][0][name]; //not correct 
var formEl = document.myForm.elements.sibling[0][name]; //not correct 
var formEl = document.myForm.sibling[0][name]; //not correct 

請幫助。

回答

2

您需要使用括號表示法,因此您可以將標識符作爲字符串提供(其中[]沒有特殊含義)。

var formEl = document.myForm['sibling[0][name]']; 

jsFiddle

+0

我認爲這是使用某種eval'的'在第一......(看到問題之前的答案):P – Shaz 2011-05-26 00:38:05

0

假設這應該是HTML,那些名稱是無效的。從w3 html4開始,例如:

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods ("."). 

當然,這並不意味着它在某些瀏覽器中不起作用。

我建議你給他們ID一些約定,然後使用document.getElementById()或document.getElementsByTagName()。

0

這工作:

document.getElementsByName("sibling[1][name]")[0] 
+0

document.getElementsByName(name)返回元素的數組與該名稱相匹配。將[0]引用添加到第一個元素,並且如果您對不同元素使用相同名稱,則您知道所需元素將是返回數組的第一個元素。 – 2011-05-26 00:41:04

相關問題