Lý do bạn gặp sự cố này là do bạn đã thực hiện không đồng bộ lời yêu cầu. Điều này có nghĩa là if(rspns == ".")
sẽ đạt được trước khi nhận được phản hồi từ máy chủ và kết quả sẽ luôn là false
.
Để bọc mã này trong một hàm, trả về một boolean và không yêu cầu hàm gọi lại (một thủ tục chặn), bạn sẽ cần sử dụng một yêu cầu đồng bộ:
function validateEmaiAjax(email) {
// This is the correct way to initialise a variable with no value in a function
var val;
// Make a synchronous HTTP request
$.ajax({
url: "https://localhost/Continental%20Tourism/register_ajax.php",
async: false,
data: {
email: email
},
success: function(response) {
// Update the DOM and send response data back to parent function
$("#warning").html(response);
val = response;
}
});
// Now this will work
if(val == ".") {
return true;
} else {
$("#warning").show();
return false;
}
}