2013-04-28 107 views
0

我目前正在使用Stripe作爲支付網關的結帳表單。我正在使用Stripe.js客戶端驗證功能來驗證卡信息輸入。問題是,我似乎無法得到函數返回true,即使輸入應該返回真值,如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); 
}); 

我總是可以設法讓驗證方法返回false,但從來都不是這樣。

肯定有可能是我的代碼有問題,因爲我是編程初學者。任何幫助,將不勝感激。謝謝!

回答

0

問題是,您在創建事件處理程序時被捕獲cc_number=$('#cc_number').val()。這個值永遠不會改變,並且不會在調用處理程序時反映表單字段的實際值。不要說:

Stripe.validateCardNumber(cc_number) 

你應該說

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

這是我的一個很大的錯誤。謝謝! – 2013-04-28 20:26:21