1

ユーザーに表示されるルールはサーバーが使用するルールと同じである必要があるため、検証ルールをJSONファイルに保存し、両方の場合にそれらをロードします。

ただし、jQuery検証プラグインは、次のような有効なJSONではない設定を使用しているようです。

$('form').validate( {
    rules : {
        userid : {
            required : true,
            maxlength : 20
        }
    }
});

キーまたは文字列値のいずれも二重引用符で囲まれていないことに注意してください。これは私のサーバー側のJSONパーサーを悲しくします。1セットのルールを維持するだけでよいようにするにはどうすればよいですか?

私の考えでは、リクエストが実際にサーバーに送信されると、サーバー(私の場合はJavaサーブレット)がrules変数を含むjsonファイルを開いて解析し、投稿されたパラメーターに適用するロジックを認識します。それらを受け入れるか拒否するか。

ただし、JSON仕様では、JavaScript配列のように引用符で囲まれていないキーと値を許可していないため、通常はjQueryで使用するためのルールを保存できません。

4

2 に答える 2

0

JavaScriptリテラルは常に有効なJSONであるとは限りませんが、JSONは常に有効なJavaScript式です。あなたはそれを使うことができます:

$('form').validate( {"rules":{"userid":{"required":true,"maxlength":20}}} );
于 2012-04-17T02:52:46.600 に答える
0

有効なjsonは、Javascriptオブジェクトのリテラル構文のサブセットです。基本的に、

{
    key1: 2,
    key2: true
}

と同じです:

{
    "key1": 2,
    "key2": true
}

リテラル数、ブール値、およびnullはJSONの特定の値であるため、パーサーがそれらをチョークすると、パーサーは正しくありません。

Javascriptでは「JSON」を使用できます。

JSONは実際にはJavaScriptObjectNotationであり、有効なJavascriptとして明示的に設計されており、最悪のシナリオではevalを使用して解析できるという考えになっています。JQueryは特定の構文を使用せず、特別に構造化されたオブジェクトが必要です。マップではなく、JavaScriptオブジェクトに文字列キーの概念はなく、有効な識別子であるメンバーとそうでないメンバーだけが必要です。

people-seenという名前のフィールドがある場合は、次のようにそのルールをバリデーターに入力します。

{ "people-seen": {
   required: true
}}
于 2012-04-17T02:53:03.650 に答える