可能重复:
使用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代码的情况下解决它?
经验:如果我使用name作为user_135_name,一切都会很好。
谢谢你的帮助。
Maros
我建议将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>
我唯一的建议是不要尝试。不要在标识符中使用"特殊"字符。如果出于其他原因,需要标识符采用严格的数据格式,则将其应用于专用属性(如data-xxx
或类似的属性(。
解决方案是使用不同的格式,只包括字母数字和"基本"字符(如下划线而不是空格等(
document.myform['user[135][name]']
应该工作,但为什么你有这么奇怪的名字???
您在代码中使用的字符串是访问name属性(如果您有['name']
(,即数组"user"中的第135个字段。
不要在名称中使用特殊字符,你可以这样做:
if(some_condition) {
document.getElementsByName('user[135][name]')[0].disabled=false;
}
观看现场演示:http://jsfiddle.net/Lw9ns/9/