[英]Javascript global variable undeclared problem
在上述示例代码中,我试图获取val变量的值。 我用全局范围声明了它。 并添加一些控制台日志以验证值。 但是在函数内部,它可以毫无问题地分配值。 但是未声明函数val。 这是为什么?
$.validator.addMethod("serialverify", function(){
var val;
$("#serialno").keyup(function(){
serial().done(function(data){
console.log('final = ' + data);
val = data;
console.log(val);
});
}); console.log(val);
return val;
}, "Please enter valid serial code");
您的代码中存在一个基本问题。 分配是在回调函数中进行的,这意味着它仅在进行动作keyup
时才执行。
但是,语句return val
是同步发生的。
建议-
您可以将其包装在某种形式的Promise中,并在done
resolve
它。 某些东西-
......done( function(data) { ..... resolve(val); })
或声明var val
; 作为外部的全局方法, addMethod
函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.