2013-04-28 2 views
0

В настоящее время я работаю над формой выписки, используя Stripe в качестве платежного шлюза. Я использую функции проверки на стороне клиента Stripe.js для подтверждения ввода информации о карте. Проблема заключается в том, что я не могу показаться, чтобы получить функции, чтобы вернуться так, даже при вводе значения, которые должны возвращать верно, такие как 4242424242424242.Stripe.validateCardNumber не возвращается true

Вот соответствующий фрагмент кода:

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); 
}); 

I всегда может заставить методы проверки возвратить false, но никогда не будет true.

Существует определенно вероятность, что с моим кодом что-то не так, как я начинаю программировать. Любая помощь будет оценена по достоинству. Благодаря!

ответ

0

Проблема в том, что вы создаете cc_number=$('#cc_number').val() при создании обработчика событий. Это значение никогда не изменится и не будет отражать фактическое значение поля формы при вызове обработчика. Вместо того чтобы сказать:

Stripe.validateCardNumber(cc_number) 

вы должны сказать

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

Это было большой ошибкой с моей стороны. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^