1

私はjqueryvalidateを使用しています、そして私がこのように検証しているとき

$("#form").validate({
            // errorLabelContainer: $("div#error"),
            errorElement: "p",
            errorClass: "form-error",
            rules: {
                name: {
                    required: true,
                    minlength: 5
                }
            }
});

すべてが正常に機能していますが、この「x.child.1.0.t」のようなdiv idがある場合は、次のようなものを使用する必要があります

$("#form").validate({
            // errorLabelContainer: $("div#error"),
            errorElement: "p",
            errorClass: "form-error",
            rules: {
                x.child.1.0.t: {
                    required: true,
                    minlength: 5
                }
            }
});

そして、これは機能していません。

4

3 に答える 3

4

のように、"またはの中に入れて、 attrを使用することを忘れないでください。'stringname

$("#form").validate({
            // errorLabelContainer: $("div#error"),
            errorElement: "p",
            errorClass: "form-error",
            rules: {
                'x.child.1.0.t': {
                    required: true,
                    minlength: 5
                }
            }
});

A validation rule associates an element with a validation method, like "validate input with name "primary-mail" with methods "required" and "email".
参照

 複雑な名前のフィールド(括弧、ドット)

If your form consists of fields using names that aren't legal JavaScript identifiers, you have to quote those names when using the rules option: 
参照

于 2012-12-14T18:38:11.673 に答える
4

...しかし、私がこのようなdividを持っている場合x.child.1.0.t...は機能していません...

あなたは2つのことをしなければなりません...

HTML:

<input name="x.child.1.0.t" />

jQuery:

$("form").validate({
    // errorLabelContainer: $("div#error"),
    errorElement: "p",
    errorClass: "form-error",
    rules: {
        'x.child.1.0.t': {
            required: true,
            minlength: 5
        }
    }
});​

jsFiddleデモ

于 2012-12-14T18:47:39.173 に答える
1

id次のようなことをしなければならないのではなく、によって検証したい場合name

$("form").validate({
    errorElement: "p",
    errorClass: "form-error"
});

// This part is ugly because of your strange id
$("#x\\.child\\.1\\.0\\.t").rules("add", {
    required: true,
    minlength: 5
});​

デモ: http: //jsfiddle.net/eyKW9/3/

バックスラッシュの理由は、.文字をエスケープする必要があるためです。そうしないと、jQuery/Sizzleはそれがクラスセレクターであると見なします。

一般に、javascriptとcssで問題が発生するため、このような値は避けるidことをお勧めします。英数字ダッシュに固執し、可能であればアンダースコアを付けます。

于 2012-12-14T18:54:07.867 に答える