0

現在、支払いゲートウェイとして Stripe を使用して、チェックアウト フォームに取り組んでいます。カード情報の入力を検証するために、Stripe.js クライアント側の検証機能を使用しています。問題は、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 に答える