0
我有一個結帳窗體,我配置了jQuery驗證插件來驗證它。 對於信用卡號和信用卡CVC領域,我定義的插件兩個新的方法:奇怪的行爲添加規則
$.validator.addMethod('creditCardNumber', function(value, element) {
return adapter.checkNumber(value, element);
}, 'Tarjeta desconocida');
$.validator.addMethod('cardVerificationCode', function(value, element) {
return adapter.checkCvc(value, element);
}, 'Cvc invalido');
// reference to ccn field
viewCache.$ccNumber.rules('add', {
creditCardNumber: true
});
// reference to cvc field
viewCache.$ccCvc.rules('add', {
cardVerificationCode: true
});
當我檢查了這兩個領域的規則有:
console.log(viewCache.$ccNumber.rules());
console.log(viewCache.$ccCvc.rules());
控制檯顯示:
對象{需要:真,creditCardNumber:真,cardVerificationCode: 真}
對象{要求:真實,編號:真,creditCardNumber:真,cardVerificationCode:真正}
爲什麼這兩個領域有creditCardNumber驗證和cardVerifiactionCode驗證?
輸入引用是正確的:
console.log(viewCache.$ccNumber.is(viewCache.$ccCvc)); // FALSE
console.log(viewCache.$ccNumber.length, viewCache.$ccCvc.lenght); // 1,1
任何想法?
更新1
下面的代碼片段展示瞭如何創建視圖緩衝。$ ccNumber和視圖緩衝。$ ccCvc變量
var viewCache = {
$ccNumber: $('[data-intellicard] [data-ccn]'),
$ccCvc: $('[data-intellicard] [data-cvc]')
};
'$視圖緩衝=== ccNumber $視圖緩衝將ccCvc'永遠是假的 - 這並不意味着jQuery的對象並不在同一個元素指向。你是如何創建這些變量的? –
@RoryMcCrossan我更新了我的問題,回答「你是如何創建這些變量的?」 – ramiromd