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 回答