坚持Jquery我觉得很简单,但我不明白为什么它不起作用。
我有一个$ .post从asp文件中检索一个值并将其放入我主页面的变量中。
var bankmsgstatus;
$.post("bankmsgstatus.asp", {}, function(data3) {
bankmsgstatus = data3;
});
但是,当我尝试进行if比较时,它不起作用。
if (bankmsgstatus == 'on') {
alert("Value: " + bankmsgstatus);
} else {
alert("Value: " + bankmsgstatus);
}
我得到的是bankmsgstatus值是'undefined'
我做错了什么?
由于
答案 0 :(得分:1)
我猜这个问题是由$.post()
异步引起的。它没有立即完成,因此当您尝试使用它时,变量bankmsgstatus
尚未设置。
我会建议:
$.post("bankmsgstatus.asp", {}, function(data3) {
var bankmsgstatus = data3;
if (bankmsgstatus == 'on') {
alert("Value: " + bankmsgstatus);
} else {
alert("Value: " + bankmsgstatus);
}
});
javascript中的异步编程要求异步操作的成功或完成处理程序生成的任何数据只能在函数本身中从该完成处理函数中使用,或者作为参数传递给您从那里调用的某个函数。这是因为调用此完成函数的时间是未知的(将来的某个时间),并且您的其他javascript继续运行,并且不等待它完成。因此,确定完成时唯一的方法是触发使用结果FROM实际完成处理程序本身的操作。