1

keyup() メソッドを使用して入力フィールドでクレジット カード番号を取得しようとしていますが、コンソールに変数名を入力すると未定義になります。それでも、フィールドに入力すると、数字がコンソールに記録されます。

$('#authorizenet_cc_number').keyup(function(){
        var ccNum =  $('#authorizenet_cc_number').val();
        console.log(ccNum);       
  });

入力の値が変更されると、それが ccNum 変数に格納されるという私の理解は間違っていますか?

4

2 に答える 2

3

ccNumのスコープは、keyup ハンドラの無名関数に対してローカルです。より高いスコープからアクセスしたい場合は、より高いスコープに入れます。

var ccNum; // declaration in an outer scope

$('#authorizenet_cc_number').keyup(function(){
    // no need to reselect on the input, just use "this"
    ccNum = $(this).val(); // initialization in an inner scope
    console.log(ccNum); // logs the value
});

console.log(ccNum); // also logs the value (if called after the handler has fired)
于 2012-06-06T19:47:22.793 に答える
3

ccNum は関数に対してローカルであるため、関数にブレーク ポイントを挿入しない限り未定義になります。

ブレークを発生させるデバッガを追加することもできます。その後、コンソールを使用して ccNum の値を確認できます。

$('#authorizenet_cc_number').keyup(function(){
        var ccNum =  $('#authorizenet_cc_number').val();
        console.log(ccNum);  
        debugger;     
  });
于 2012-06-06T19:44:14.833 に答える