使用keyup()设置变量

时间:2012-06-06 19:41:22

标签: javascript jquery

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

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

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

2 个答案:

答案 0 :(得分:3)

ccNum是函数的本地函数,因此除非在函数中插入断点,否则它将是未定义的。

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

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

答案 1 :(得分: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)