I am checking duplicate email from database. first i checked valid email then checked email length then i checked email from database using ajax. so return true or return false is not working in ajax code.other validation is ok but checking duplicate email is not working. also ajax response is ok.
here my js file -
$(document).ready(function(){
var form = $("#form");
var registeremail = $("#registeremail");
var emailInfo = $("#emailInfo");
registeremail.blur(validateEmail);
registeremail.keyup(validateEmail);
form.submit(function(){
if( validateEmail() )
return true;
else
return false;
});
function validateEmail(){
//testing regular expression
var a = $("#registeremail").val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
//if it's valid email
if(filter.test(a)){
registeremail.removeClass("error");
emailInfo.text("");
emailInfo.removeClass("error");
if(registeremail.val().length < 8){
registeremail.addClass("error");
emailInfo.text("Min 8 letters required.");
emailInfo.addClass("error");
return false;
}
else if(registeremail.val().length > 60){
registeremail.addClass("error");
emailInfo.text("Max 60 letters required.");
emailInfo.addClass("error");
return false;
}
else
{
$.ajax({
url: "home/CheckEmail",
data: {
email: a
},
success: function(ret)
{
if(ret=='1')
{
registeremail.addClass("error");
emailInfo.text("Email already exist.");
emailInfo.addClass("error");
return false;
}
else if(ret != '1')
{
registeremail.removeClass("error");
emailInfo.text("");
emailInfo.removeClass("error");
//document.forms["form"].submit();
return true;
}
}
});
}
}
//if it's NOT valid
else{
registeremail.addClass("error");
emailInfo.text("Valid e-mail please");
emailInfo.addClass("error");
return false;
}
}
});
async : falseto use your script like this : api.jquery.com/jQuery.ajax