0

私のコード次のようにする必要があります:

rules: {
  jform[name]: {
  required:true,
  minlength:5,
  maxlength:15
},

これらの角括弧はどのように使用すればよいですか? このウェブサイトとグーグルで見つかったこの主題に関する多くの回答がありますが、特にこれについてはそうではありません.

4

4 に答える 4

7

無効な構文を使用する方法を尋ねているため、無効であるため不可能であるため、現在の質問に正確に答えることができません。

ただし、私にできることは、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();

.プロパティはand[]記法でアクセスできます:

//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
}

[変数名にand chars を使用できないため無効ですが]、リテラル値に文字列を使用できます。

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
};
于 2012-03-13T20:16:34.320 に答える
3
obj = {
 "rules" : {
  "jform" : {
    "name" : {
      required:true,
      minlength:5,
      maxlength:15
    }
   }
  }
},

このような値にアクセスできるようになりました

 obj[rules][jform][name]
于 2012-03-13T20:07:12.143 に答える
3

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
    }
}
于 2012-03-13T20:03:24.780 に答える
1

JSONのことですか?それとも JavaScript オブジェクト リテラルですか? 質問から流行語「jQuery」を削除してください。

(角)括弧付きのプロパティ名が必要な場合は、次のいずれかを実行できます

rules = {
  "jform[name]": {
    required:true,
    minlength:5,
    maxlength:15
  }
}

また

rules["jform[name]"] = {...};
于 2012-03-13T20:02:37.643 に答える