आपको यह समस्या होने का कारण यह है कि आपने एक एसिंक्रोनस . का प्रदर्शन किया है अनुरोध। इसका मतलब है कि 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;
}
}