小编典典
问题是,onreadystatechange直到……等待……状态改变后才会触发。因此,当您return
status;大部分时间处于状态时,就没有时间设置。您需要做的return
false;始终是onreadystatechange确定您是否要继续进行。如果您这样做,则提交表单。简而言之,采用处理返回值的代码,而是从readystatechange处理程序中运行它。您可以直接执行以下操作:
request.onreadystatechange = function() {
if (request.readyState == 4) {
var resp = parseInt(request.responseText, 10);
switch (resp) {
case 0:
document.getElementById('myform').submit();
break;
case 1:
alert("The display name has already been taken.");
break;
case 2:
alert("This student ID has already been registered");
break;
}
}
}
return false; // always return false initially
或通过将连续性传递给进行异步调用的函数:
function checkUser(success, fail) {