Stripe.validateCardNumber未返回true

时间:2013-04-28 06:20:09

标签: jquery stripe-payments

我目前正在使用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,但绝不是真的。

我的代码肯定存在问题,因为我是编程的初学者。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

问题是您在创建事件处理程序时被捕获cc_number=$('#cc_number').val()。此值永远不会更改,并且在调用处理程序时不会反映表单字段的实际值。而不是说:

Stripe.validateCardNumber(cc_number)

你应该说

Stripe.validateCardNumber($('#cc_number').val())