0

可能重复:
使用 php 和 javascript 时在复选框名称中使用括号?

我在 html 代码中用作输入字段的名称:

<input size="15" name="user[135][name]" value="" disabled=disabled>

然后我想像这样在javascript中使用它:

if(some_condition)  { document.myform.user[135][name].disabled=false; }

但这不起作用,因为字段名称中有括号。有什么方法可以在不更改html代码的情况下解决它?

经验:如果我使用名称作为 user_135_name 一切正常。

谢谢你的帮助。

马罗斯

4

4 回答 4

0

我会建议添加id到您的输入标签如下

<input size="15" id="user_name_135" name="user[135][name]" value="" disabled=disabled>

使用简单的 Javascript

if(some_condition) { document.getElementById("user_name_135").disabled=false; }

使用 jQuery

if(some_condition){ $("#user_name_135").prop('disabled', false);}

此外,如果后面只有一个语句,if您可以省略{}

if(some_condition) 
  document.getElementById("user_name_135").disabled=false; 

已编辑请将以下代码另存为 html 文件,看看它应该适合你

<!doctype html>
<html>
<head>
<script>
function some(){
  document.getElementById("user_name_135").disabled=false;
}
</script>
</head>
<body>
<input size="15" id="user_name_135" name="user[135][name]" value="" disabled=disabled>
<a href ="javascript:void(0)" onclick="some()">disbale input</a>
</body>
</html>
于 2013-01-09T11:49:11.450 回答
0

我唯一的建议是不要尝试。不要在标识符中使用“特殊”字符。如果出于其他原因需要标识符采用严格的数据格式,则将其应用于专用属性(例如data-xxx,或类似的东西)。

解决方案是使用不同的格式,一种只包含字母数字和“基本”字符(例如下划线而不是空格等)的格式。

于 2013-01-09T11:49:40.940 回答
0

document.myform['user[135][name]']应该可以,但是为什么你有这么奇怪的名字???

您在代码中要访问的是访问 name 属性(如果有['name'])数组“user”中的第 135 个字段。

于 2013-01-09T11:49:57.103 回答
0

不要在名称中使用特殊字符,您可以这样做:

if(some_condition)  { 
    document.getElementsByName('user[135][name]')[0].disabled=false; 
}

查看现场演示:http: //jsfiddle.net/Lw9ns/9/

于 2013-01-09T11:57:20.327 回答