2008-09-30 61 views
1

我有一個表單元素,我想通過JavaScript解決,但它不喜歡的語法。如何在JavaScript中轉義DOM名稱?

<form name="mycache"> 
    <input type="hidden" name="cache[m][2]"> 
    <!-- ... --> 
</form> 

我希望能夠說:

document.mycache.cache[m][2] 

但顯然我需要指出cache[m][2]是全名,而不是一個數組引用cache。可以做到嗎?

回答

3

更新:其實,我錯了,你可以使用[或]字符作爲表單元素id和/或名稱屬性的一部分。

下面是一些代碼來證明它:

<html> 
<body> 

<form id="form1"> 

<input type='test' id='field[m][2]' name='field[m][2]' value='Chris'/> 

<input type='button' value='Test' onclick='showtest();'/> 

<script type="text/javascript"> 
function showtest() { 
    var value = document.getElementById("field[m][2]").value; 
    alert(value); 
} 
</script> 

</form> 

</body> 
</html> 

更新:您還可以使用以下方法來從表單元素中獲得的價值:

var value = document.forms.form1["field[m][2]"].value; 
+0

這讓我朝着正確的方向....能夠引用名稱作爲數組索引很好。 – DGM 2008-09-30 23:10:32

+0

該名稱可以包含[和]字符,但id可能不會(即使瀏覽器執行錯誤恢復)。 – Quentin 2008-10-01 09:33:39

1

是否有可能增加一個id引用到表單元素並使用document.getElementById?

2

改爲使用document.getElementsByName("input_name")。跨平臺也是。贏得。

+0

其實getElementByName不是跨平臺的。這是一個IE特定的事情。 – 2008-09-30 22:50:35

1

- 在過去(在HTML3.2/4.01過渡/ XHTML1.0過渡DOM的結合),你可以使用:

form.elements["cache[m][2]"] 

- 但元素 - 東西,克里斯Pietschmann表示,沒有必要,因爲這些綁定方案還允許直接訪問(雖然我個人更喜歡額外的可讀性!)

相關問題