Может ли кто-нибудь сказать мне, как вернуть значение status
в качестве возвращаемого значения функции.
function checkUser() {
var request;
var status = false;
//create xmlhttprequest object here [called request]
var stu_id = document.getElementById("stu_id").value;
var dName = document.getElementById("dName").value;
var fileName = "check_user.php?dName=" + dName + "&stu_id=" + stu_id;
request.open("GET", fileName, true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var resp = parseInt(request.responseText, 10);
if(resp === 1) {
alert("The display name has already been taken.");
status = false;
}
else if(resp === 2) {
alert("This student ID has already been registered");
status = false;
}
else if(resp === 0) {
status = true;
}
}
}
return status;
}
Вышеуказанная функция срабатывает, когда вы нажимаете submit в регистрационной форме (как это должно быть очевидно). Проблема в том, что эта форма отправляется независимо от того, что ответ, а поле предупреждения иногда ничего не показывает [пусто], иногда вообще не отображается. Однако, если я изменил окончание status
на false
вручную [т. замените status
на false
], в поле предупреждения появится правильное значение.
P.S. Я хуже, чем noob в javascript, поэтому предложения по обычному улучшению кода также приветствуются.