1

我正在尝试使用 keyup() 方法在输入字段上获取信用卡号,但是当我在控制台中键入变量名时,我变得不确定。然而,当我在字段中输入数字时,数字将被记录到控制台。

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

我的理解是错误的,当输入中的值发生变化时,它存储在 ccNum 变量中?

4

2 回答 2

3

ccNum 是函数的局部变量,因此除非您在函数中插入断点,否则它将是未定义的。

您还可以添加调试器,这将导致发生中断。然后您可以使用控制台查看 ccNum 的值。

$('#authorizenet_cc_number').keyup(function(){
        var ccNum =  $('#authorizenet_cc_number').val();
        console.log(ccNum);  
        debugger;     
  });
于 2012-06-06T19:44:14.833 回答
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 回答