我正在尝试使用keyup()方法在输入字段上获取信用卡号,但是当我在控制台中键入变量名时,我得到了未定义的信息。然而,当我输入字段时,数字将被记录到控制台。
$('#authorizenet_cc_number').keyup(function(){
var ccNum = $('#authorizenet_cc_number').val();
console.log(ccNum);
});
我的理解是错误的,当输入中的值发生变化时,它会存储在ccNum变量中吗?
答案 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)