可能重复:
use brackets in checkbox name when using php and 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
答案 0 :(得分: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>
答案 1 :(得分:0)
我唯一的建议是不要尝试。不要在标识符中使用“特殊”字符。如果您需要标识符为严格的数据格式,那么请将其应用于专用属性(例如data-xxx
或类似的东西)。
解决方案是使用不同的格式,一种仅包含字母数字和“基本”字符(例如下划线而不是空格等)。
答案 2 :(得分:0)
document.myform['user[135][name]']
应该有用,但为什么你有这么奇怪的名字?
您在代码中使用的是访问名称属性(如果您有['name']
)数组“user”中的第135个字段。
答案 3 :(得分:0)
不要在名字中使用特殊字符,你可以这样做:
if(some_condition) {
document.getElementsByName('user[135][name]')[0].disabled=false;
}
查看现场演示:http://jsfiddle.net/Lw9ns/9/