如何在javascript变量中使用括号

how to use brackets in javascript variable?

本文关键字:变量 javascript      更新时间:2023-09-26

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