1

Jquery Validator を使用しています 私の課題は、ユーザーがプロファイル情報を更新するときです。ただし、 CC は変更しません。

更新ページでは、4* * ** *1111のみが表示されます

したがって、次を使用すると検証は失敗します: (以下のコード スニペット)

$("#profile-form").validate({
      rules: {
             ccnum: { required: true, creditcard: true },
             exp_year: { ccDate: true},
             exp_month: { ccDate: true}
             }

しかし、ユーザーが新しい CC 番号を入力すると、想定どおりに動作します。

したがって、ユーザーが何か他のものを更新してCCカードをそのままにしたい場合、私はどうすればよいでしょうか。

アイデア/提案はありますか?

4

1 に答える 1

1

要素の値が変更された場合にクレジット カードの検証メソッドを呼び出す新しいルールを作成します。

$.validator.addMethod("creditcard-custom", function (value, element) {
    return this.optional(element) || 
        element.value === element.defaultValue ||
        $.validator.methods.creditcard.call(this, value, element);
}, $.validator.messages.creditcard);

使用法:

$("#myform").validate({
    rules: {
        ccnum: {
            required: true,
            'creditcard-custom': true
        },
        exp_year: {
            ccDate: true
        },
        exp_month: {
            ccDate: true
        }
    }
});

例: http://jsfiddle.net/andrewwhitaker/kqczf/2/

于 2012-10-06T02:10:45.720 に答える