Причината да имате този проблем е, че сте извършили асинхронен искане. Това означава, че if(rspns == ".")
ще бъде достигнато преди отговорът да бъде получен от сървъра и резултатът винаги ще бъде false
.
За да обвиете този код във функция, която връща булево значение и не изисква функция за обратно извикване (блокираща процедура), ще трябва да използвате синхронна заявка:
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;
}
}