tengo una funcion que valida entre otras cosas la existenca de un email en la base de datos, esta validacion de email hace justo un ajax, por lo que tiene que esperar la respuesta del servidor para saber que devolvera la funcion en la que se encuentra este ajax, pero esta funcion no se espera a que el ajax este completado y hace el return antes de saber si la validacion es 'ok' o 'ko'. Dejo una pequeña ilistracion:
Código :
function checkeaErrores(objeto){ var hasError=false; switch(objeto.attr('name')){ case 'email': if(valEmail(objeto.val())){ $.post("validaAjax.php", {email: objeto.val()},function(data){ if(data=='ok'){ objeto.css('background-color','#FFFFFF'); }else if(data=='ko'){ hasError=true; objeto.css('background-color','#FFEDEF'); } }); }else{ hasError=true; objeto.css('background-color','#FFEDEF'); } break; case 'pass': if(!valPass(objeto.val())){ hasError=true; objeto.css('background-color','#FFEDEF'); }else{ objeto.css('background-color','#FFFFFF'); } break; case 'pass2': if($('#pass').val()!=objeto.val()){ hasError=true; objeto.css('background-color','#FFEDEF'); }else{ objeto.css('background-color','#FFFFFF'); } break; } return hasError; } //EN OTRO PUNETO DEL CODIGO error=checkeaErrores($(this)); //
Aunque el email ya existe en la base de datos el return del la funcion es false i.e (lo que le doy por defecto). mi problema biene en que se ejecuta antes el return de la funcion sin esperar a que el ajax del email este completo para cambiar el hasError a true..
Alguna pista..
Thanks..