如何在javascript变量中使用括号?

时间:2013-01-09 11:47:12

标签: javascript html forms variables input

  

可能重复:
  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

4 个答案:

答案 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/