我正在使用Jquery Validator 我的挑战是当用户更新他们的个人资料信息时。但没有改变他们的CC。
在更新页面中,我只显示4 * * ** * 1111
因此,如果使用以下代码片段,验证将失败
$("#profile-form").validate({
rules: {
ccnum: { required: true, creditcard: true },
exp_year: { ccDate: true},
exp_month: { ccDate: true}
}
但是如果用户输入一个新的CC号码,它就会按照它想要的那样做。
所以我的问题是,如果用户想要更新其他内容并且不接触CC卡,我该怎么办?
有任何想法/建议吗?
答案 0 :(得分: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
}
}
});