我的代码必须是这样的:
rules: {
jform[name]: {
required:true,
minlength:5,
maxlength:15
},
我应该如何使用这些方括号?在这个网站和谷歌上有很多关于这个主题的答案,但不是特别针对这个。
我的代码必须是这样的:
rules: {
jform[name]: {
required:true,
minlength:5,
maxlength:15
},
我应该如何使用这些方括号?在这个网站和谷歌上有很多关于这个主题的答案,但不是特别针对这个。
我现在无法准确回答你的问题,因为你问的是如何使用无效的语法,这是不可能的,因为它是无效的。
但是,我能做的是解释 JSON 在 JavaScript 中的工作原理,并希望它能解决您的问题:
{}
是一个对象字面量//this creates a new object
a = {};
//so does this
a = new Object();
[]
是一个数组字面量//this creates a new array
a = [];
//so does this
a = new Array();
.
和[]
符号访问属性://these are the same
a.b = c;
a['b'] = c;
a = {
//any character you can use for a variable name can be
//used to instantiate an object without quotes
b: c,
//special characters need to be quoted
"foo bar baz": "fizz buzz"
};
您的原始语法:
rules: {
jform[name]: {
required:true,
minlength:5,
maxlength:15
}
无效,因为您不能在变量名中使用[
和]
字符,但是您可以使用字符串作为文字值:
rules: {
"jform[name]": {
required:true,
minlength:5,
maxlength:15
}
...将被访问为:
rules["jform[name]"]
但您似乎希望通过以下方式访问数据:
rules.jform[name]
这需要设置为:
rules: {
jform: {}
}
...more code...
rules.jform[name] = {rules: {
required:true,
minlength:5,
maxlength:15
};
我猜你想要jform[name]
对象中一个键的值。声明对象字面量时,不能使用变量作为键。您必须将此键添加为另一个语句。
例子:
var data = {
rules: {
}
};
data.rules[jform[name]]= {
required:true,
minlength:5,
maxlength:15
};
如果您希望键字面上是jform[name]
,那么您需要在键周围使用引号。
rules: {
"jform[name]": {
required:true,
minlength:5,
maxlength:15
}
}
obj = {
"rules" : {
"jform" : {
"name" : {
required:true,
minlength:5,
maxlength:15
}
}
}
},
您现在可以访问这样的值
obj[rules][jform][name]
你的意思是JSON?还是 JavaScript 对象字面量?请从您的问题中删除流行语“jQuery”。
如果你想要一个带有(方)括号的属性名称,你可以这样做
rules = {
"jform[name]": {
required:true,
minlength:5,
maxlength:15
}
}
或者
rules["jform[name]"] = {...};