2008-09-30 83 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表示,没有必要,因为这些绑定方案还允许直接访问(虽然我个人更喜欢额外的可读性!)

相关问题