Intérompre une fonction...

Résolu
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 29 oct. 2008 à 22:05
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 30 oct. 2008 à 12:04
Bonjour,

Je cherche a stopper le déroulement d'une fonction lors d'une condition, j'ai testé avec return mais ça marche pas...

Fonction principal:

function valide(filename, id_form, style, id_fenetre, bouton)  {

    var xhr_object = null;    
    var myform = document.getElementById(id_form);
    var nb_champs = myform.elements.length;
    var data = "";
    var method = "POST";

    if(window.XMLHttpRequest) // Firefox
       xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
       xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return;
    }
     
    for(i=0;i<nb_champs;i++)
    {
        data = data+myform.elements[i].id+"="+myform.elements[i].value+"&";
    }
   
    xhr_object.open(method, filename, true);
   
    xhr_object.onreadystatechange = function() {
       if(xhr_object.readyState == 4) {
          var msg = xhr_object.responseText;
          if(msg != "") {
              msg_erreur(msg, style, 'erreur', '250', '130');
              C'est laque je la stopper!!

            return;
          }
       }
    }
   
        xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr_object.send(data);
   
        if(bouton == "ok")
            window.Windows.close(id_fenetre);
        else
            document.getElementById(bouton).disabled = true;
}

fonction msg_erreur:

function msg_erreur(msg, style, status, largeur, hauteur) {       
      if (status="attention")
          var type = "./images/attention.png";
      if (status="erreur")
          var type = "./images/erreur.png";

      debug($('modal_window_content'))
      var win = new Window('Erreur', {className: style, title: " Erreur de saisie ", resizable: false, closable: false, maximizable: false, minimizable: false, top:100, left:100,  width:largeur, height:hauteur, zIndex:150, opacity:1, resizable: false})
      win.getContent().innerHTML = "texte html";
      win.setDestroyOnClose();
      win.showCenter(true);
      return(false);
}

merci

Az

6 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
30 oct. 2008 à 10:34
bonjour,
tu attends la fin , lé réponse d'ajax
xhr_object.onreadystatechange = function() {
       if(xhr_object.readyState == 4) {
          var msg = xhr_object.responseText;
          if(msg != "") {
              msg_erreur(msg, style, 'erreur', '250', '130');
              C'est laque je la stopper!!

            return;
          }
       }
    }
et pourtant tu continue derrière le send.
        xhr_object.send(data);   
        if(bouton == "ok")
            window.Windows.close(id_fenetre);
        else
            document.getElementById(bouton).disabled = true;

quoiqu'il arrive, avant même la réponse d'ajax,
le if (bouton... ) est exécuté

xhr_object.onreadystatechange = function() {
       if(xhr_object.readyState == 4) {
          var msg = xhr_object.responseText;
          if(msg != "")
                { msg_erreur(msg, style, 'erreur', '250', '130'); }
         else { traitement si la réponse est ok }

....

si c'est ce que tu attends !

Cordialement

           Bul [mon Site] [M'écrire]         
3
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
29 oct. 2008 à 22:19
a mon avis la condition n'est jamais ateinte
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
29 oct. 2008 à 22:24
Pourtant si car la fonction msg_erreur s'exécute bien.

Az
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
29 oct. 2008 à 22:34
Je viens de tester ça et le message alert s'affiche bien!

    xhr_object.onreadystatechange = function() {
       if(xhr_object.readyState == 4) {
          var msg = xhr_object.responseText;
          if(msg != "") {
              msg_erreur(msg, style, 'erreur', '250', '130');
            alert('terte');
            return;
          }
       }
    }
   
Az
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
30 oct. 2008 à 10:10
essai de mettre un return false;

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
30 oct. 2008 à 12:04
Nickel!! c'est exactement ce que je voulais, j'étais justement entrain de tester cette solution ^^

Az
0
Rejoignez-nous