这是代码:
$("#sign-in-btn").click(function () {
var $username = $("#id_username").val();
var $password = $("#id_password").val();
var userID;
$.getJSON("testdata.json", function (data) {
var user = data.user;
for (i = 0; i < user.length; i++) {
if ($username == user[i].username && $password == user[i].password) {
userID = user[i].id;
setCookie("userID", userID, 7);
return;
}
}
});
if (userID) {
return true;
} else {
return false;
}
});
请问是怎么回事?
ajax没开启同步呗
getJSON
是异步的,你最后的if语句要放在getJSON
的第二个参数的函数里面去
大枫哥的id,难怪那么眼熟
异步惹的祸。
你别闹,你的$.getJSON
是的异步方法,它的执行结果一定是在执行完
if (userID) {
return true;
} else {
return false;
}
之后,才得到的。所以,当你判断if(userID)
的时候,$.getJSON
其实还没得到结果呢。
去看看大神之间的撕逼之作,你就懂了