Requete ajax lente javascript

Fermé
wolves'sbrother Messages postés 218 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 13 juillet 2011 - 4 mars 2011 à 11:22
Bonjour,
J'essaye de faire une fonction de test sur un formulaire , dans cette fonction j'ai une requête ajax qui est censé modifié une variable selon la réponse, le problème c'est que mon code s'exécute avant la réponse de la requête,je vous laisse voir le code et je vous explique après


  function checkIp(){
            var msg='';            
            var ip = $('#ip');
            var mask = $('#mask');
            var type = $('#type');


//expression reguliere sur l'adresse ip
            var check_ip=new RegExp("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
//expression reguliere sur le masque
            var check_mask=new RegExp("^255[\.][0-9]{1,3}[\.][0-9]{1,3}[\.][0-9]{1,3}$","g");
            if(ip.val()==''){
               msg += "Veuillez saisir une @IP\n";
               ip.css('background-color', '#FFDF77');
            }
            else if(!check_ip.test(ip.val())){
                 msg += "Veuillez saisir une @IP valide \n";
                ip.css('background-color', '#FFDF77');    
            }
            else  if(type.val()!=getIpType(ip.val())){
                 msg += "Veuillez saisir une adresse ip "+type.val()+" \n";
                 ip.css('background-color', '#FFDF77');
            }


            else if(type.val()=='public'){
                var pass=false;
                
                 alert ($.post('editAdresse.php',{'checkip' :ip.val() },function(data){ 
                     if(data=='busy'){
                         msg = "L'adresse IP : "+ip.val() +" est déja utilisé \n";
                         ip.css('background-color', '#FFDF77');
                     }
                     else if(data=='not found'){
                         msg += "L'adresse IP : "+ip.val() +" est introuvable \n";
                         ip.css('background-color', '#FFDF77');
                     }
                     pass=true;
                 }));

                    if(mask.val()==''){
               msg += "Veuillez saisir un maskque réseau\n";
               mask.css('background-color', '#FFDF77');
            }
            else if(!check_mask.test(mask.val())){
                msg += "Veuillez saisir un maskque réseau valide\n";
                mask.css('background-color', '#FFDF77');
            }
            else {
                alert(msg);
            }
            }


Quand je fait un test avec une adresse ip qui n'existe pas dans ma table , la réponse de la requete ajax est 'not found', donc je dois avoir un message d'alerte "L'adresse IP XXX.XXX.XXX.XXX est introuvable, mais non j'ai un message d'alert vide, le reste du code s'execute avant la requete ajax.

Comment dois-je faire pour régler ça.

Merci