我目前正在使用Stripe作为支付网关处理结帐表单。我正在使用Stripe.js客户端验证功能来验证卡信息输入。问题是我似乎无法使函数返回true,即使在输入应该返回true的值时,例如4242424242424242。
以下是相关的代码片段:
var error=false;
var cc_number=$('#cc_number').val(),
cc_exp_month=$('#cc_exp_month').val(),
cc_exp_year=$('#cc_exp_year').val(),
cc_cvc=$('#cc_cvc').val();
$('#cc_number_error').hide();
$('#cc_exp_error').hide();
$('#cc_cvc_error').hide();
$('#cc_number').keyup(function(){
if(!Stripe.validateCardNumber(cc_number)){
error=true;
$('#cc_number_error').show();
}
else{
error=false;
$('#cc_number_error').hide();
}
$('.address_f_name').val(error);
});
我总是可以设法让验证方法返回false,但绝不是真的。
我的代码肯定存在问题,因为我是编程的初学者。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
问题是您在创建事件处理程序时被捕获cc_number=$('#cc_number').val()
。此值永远不会更改,并且在调用处理程序时不会反映表单字段的实际值。而不是说:
Stripe.validateCardNumber(cc_number)
你应该说
Stripe.validateCardNumber($('#cc_number').val())