0

送信されたフォームを検証するために、jqueryvalidateを使用しています。フォームには、同じルールを持つ3つの入力フィールドがあります。つまり、数値と必須-trueのみです。3つの入力すべてに対して単一のルールを記述できますか?

     rules: {
                "depository.startDate":{
                    required:true,
                    digits:true
                },
                "depository.endDate":{
                    required:true,
                    digits:true
                },
                "depository.port":{
                    required:true,
                    digits:true
                }
            },

 rules: {
            "depository.startDate, depository.port, depository.endDate ":{
                required:true,
                digits:true
            }
        },

試しましたが、機能しませんでした。他の方法でこの検証を機能させることができます。

- ありがとう

4

1 に答える 1

1

組み込みのrules()メソッドを使用してルールを追加します。 ドキュメントを参照してください。

注:このメソッドは、を呼び出した後に呼び出す必要があり、。と組み合わせる必要があります。.validate().each()

jsFiddleデモ

HTML:

 <input type="text" name="depository.startDate" />
 <input type="text" name="depository.endDate" />
 <input type="text" name="depository.port" />

jQuery:

$('#form').validate({
    // your other options
});

// the following method must come AFTER .validate()
$("input[name*='depository']").each(function() {
    $(this).rules('add', {
        required: true,
        digits: true
    });
});

このメソッドは、フォームにフィールドを動的に追加する場合にも非常に役立ちます。

カスタムと組み合わせるには、次のようにしますmessages:。内のオプションとしてルールを追加する場合とは形式が少し異なることに注意してください.validate()...

$("input[name*='depository']").each(function() {
    $(this).rules('add', {
        required: true,
        digits: true,
        messages: {
            required: "Required input",
            digits: "Only digits please"
        }
    });
});

または、代わりに使用することもできますが、class正しく機能させるには、.each()...と組み合わせる必要があります。

jsFiddleデモ

HTML:

 <input type="text" class="myclass" name="depository.startDate" />
 <input type="text" class="myclass" name="depository.endDate" />
 <input type="text" class="myclass" name="depository.port" />

jQuery:

$('form').validate({
    // your other options
});

// the following method must come AFTER .validate()
$('form').find('.myclass').each(function() {
    $(this).rules('add', {
        required: true,
        digits: true
    });
});
于 2012-12-27T23:08:02.250 に答える