我有一个小的 jQuery/AJAX 脚本,用于检查用户名是否已在使用中。它查询一个 PHP 脚本,然后输出具有指定用户名的用户数。我有一个错误计数器来跟踪表单上验证错误的数量,如果用户名已经在使用中,我会增加计数器。
//Keep track of number of errors
var errors = 0;
//Keep track of error messages
var errorMsg = "";
//Check if the passwords match (this part works as expected)
if($("#password").val() != $("#repeat").val()) {
errors++;
errorMsg += "<li>Passwords do not match!</li>";
}
//Now check if the user exists
var userName = $("#user").val();
$.ajax({
type: "POST",
data : {'user': userName},
cache: false,
url: "js/ajax/addUser.php?action=checkuser",
success: function(data){
var result = parseInt(data);
//For debugging purposes
alert("Before checking the data, # of errors is: " + errors);
if(result > 0) {
errors++;
errorMsg += "<li>A user with the name <strong>" + userName + "</strong> already exists!</li>";
}
//For debugging purposes
alert("After checking the data, # of errors is: " + errors);
}
});
//For debugging purposes
alert("Before validating the form, # of errors is: " + errors);
if(errors > 0) {
//Output error message
}
else {
//Send the form
}
正如评论中提到的,我有一些alert()
用于调试的。前两个(在 AJAX 请求中)显示正确的错误数量。但是,当我到达第三个时,它完全忽略了 AJAX 请求中发生的任何错误。
我已将我的代码精简为基本要素,但如果在提供的代码段中错误不明确,我可以发布整个内容。