0

我目前正在使用 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,但永远不会返回 true。

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

4

1 回答 1

0

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

Stripe.validateCardNumber(cc_number)

你应该说

Stripe.validateCardNumber($('#cc_number').val())
于 2013-04-28T18:31:58.717 回答