[JS] Compatibilité FF/IE - fonction via formulaire

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ZelkiN, 15 Juillet 2008.

  1. ZelkiN
    ZelkiN WRInaute occasionnel
    Inscrit:
    27 Juillet 2007
    Messages:
    458
    J'aime reçus:
    0
    Bonjour, encore moi et mes soucis de JS :s

    Cette fois une incompatibilité de mon code sur IE, enfaite tout marche sur FF mais rien ne marche sur IE ^^ ca n'appelle pas la fonction on dirait

    Code HTML :
    Code:
    <form method="post" onsubmit="achathangar(this.id.value,this.qte.value,this.type.value); return false">
    		  <input name="id" type="hidden" id="id" value="1" />.........</form>
    y a t'il déja un souci ici ou pas ?

    Puis voici ma fonction qui sert a traiter le formulaire en POST avec AJAX :

    Code:
    function achathangar(id, qte, type)
    {
      var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
      OAjax.open('POST',"php/hangar.php",true);
      OAjax.onreadystatechange = function()
      {
          if (OAjax.readyState == 4 && OAjax.status==200)
          {
              if (document.getElementById)
              {   
                  if (OAjax.responseText =='true') { /* OK */
                        document.getElementById("msg"+id+"").innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                  }else{                             /* PAS OK */
                        document.getElementById("msg"+id+"").innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                  }
              }     
          }
      }
      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      OAjax.send('id='+id+'&qte='+qte+'&type='+type);   
      
      //réactivation du bouton
    	setTimeout('document.getElementById("bouton'+id+'").disabled = false;', 2500); 
    	setTimeout('document.getElementById("msg'+id+'").innerHTML=""', 6000); 
    } 
    
    en gros la ca me traite les données avec hangar.php puis me retourne du texte que je met dans les balises <div id="msg1"></div> etc... Le set timeout de fin me permet de "remettre actif" le bouton


    Avez vous une idée ou pas ?

    Merci d'avance
     
  2. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    slt, non à première vue, mais bon vue la longueur du code, si tu places 2 / 3 alert('toto'), tu devrais vite voir ou ca coince ;-)
     
  3. ZelkiN
    ZelkiN WRInaute occasionnel
    Inscrit:
    27 Juillet 2007
    Messages:
    458
    J'aime reçus:
    0
    Apres avoir mis des alert un peu de partout, je me suis rendu compte que la fonction n'est meme pas appelé par IE ... :s

    L'appel de ma fonction via le formulaire serait elle incorrecte ?

    Merci
     
  4. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    le onsubmit n'est appelé que lors de l'appuie sur un input type submit est-ce le cas ?
     
  5. ZelkiN
    ZelkiN WRInaute occasionnel
    Inscrit:
    27 Juillet 2007
    Messages:
    458
    J'aime reçus:
    0
    Bon j'ai trouvé le HIC !

    Code:
      <form onsubmit="achathangar(this.id.value,this.qte.value,this.type.value);return false" method="post" action="">
                  <input name="id" type="hidden" id="id" value="2" />
                  <input name="type" type="hidden" id="type" value="lav-25">
                  <label>
                  <select name="qte" id="qte">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="5">5</option>
                    <option value="10">10</option>
                    <option value="30">30</option>
                    <option value="50">50</option>
                    <option value="100">100</option>
                    <option value="500">500</option>
                  </select>
                  <input name="bouton2" type="submit" id="bouton2" onclick="this.disabled=1" value="Acheter">
                  </label>
                </form>
    En faite vous pouvez voir que sur le onclick du bouton submit j'appelle également du js pour désactiver (disabled) celui ci. Le probleme est donc que sur IE ca appelle ce JS mais plus la fonction, quand j'enleve le disabled ca marche :s comment je peux faire pour le garder ?

    Merci
     
  6. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    Code:
    <form onsubmit="this.bouton2.disabled=1;achathangar(this.id.value,this.qte.value,this.type.value);return false" method="post" action="">
                  <input name="id" type="hidden" id="id" value="2" />
                  <input name="type" type="hidden" id="type" value="lav-25">
                  <label>
                  <select name="qte" id="qte">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="5">5</option>
                    <option value="10">10</option>
                    <option value="30">30</option>
                    <option value="50">50</option>
                    <option value="100">100</option>
                    <option value="500">500</option>
                  </select>
                  <input name="bouton2" type="submit" id="bouton2"  value="Acheter">
                  </label>
                </form>
    
    ?
     
  7. ZelkiN
    ZelkiN WRInaute occasionnel
    Inscrit:
    27 Juillet 2007
    Messages:
    458
    J'aime reçus:
    0
    hihi j'ai oublié :p

    <input name="bouton2" type="submit" id="bouton2" onclick="this.disabled=1" value="Acheter">
     
Chargement...
Similar Threads - [JS] Compatibilité fonction Forum Date
[JS] Forcer deux clics sur un input Développement d'un site Web ou d'une appli mobile 15 Mars 2014
[JS] Actualiser options <select> après choix d'un autre <select> Développement d'un site Web ou d'une appli mobile 28 Juin 2012
[JS] Remplacer un "," par un "." dans un INPUT Développement d'un site Web ou d'une appli mobile 8 Mars 2012
[JS] executer la fonction d'une variable Développement d'un site Web ou d'une appli mobile 25 Octobre 2011
[JS] - Un script qui plante uniquement en arrivant depuis google ! Développement d'un site Web ou d'une appli mobile 18 Mars 2011
[JS] Un compte a rebours avec avance rapide - dev Développement d'un site Web ou d'une appli mobile 30 Décembre 2010
[JS] Remplacer des retours à la ligne par des <br /> à la saisie Développement d'un site Web ou d'une appli mobile 14 Novembre 2010
[JS] Masquer / afficher un <div> à la saisie d'un <input> Développement d'un site Web ou d'une appli mobile 2 Novembre 2010
[JS] : empêcher la caractère espace Développement d'un site Web ou d'une appli mobile 7 Janvier 2009
[JS] Inserer un text dans un input ! Développement d'un site Web ou d'une appli mobile 18 Août 2008
[JS] CTRL+C "forcé" au clic Développement d'un site Web ou d'une appli mobile 16 Décembre 2007
[JS][résolu]array is not defined pourtant je l'ai défini Développement d'un site Web ou d'une appli mobile 17 Août 2007
[JS] placer le curseur à la fin d'un champ INPUT Développement d'un site Web ou d'une appli mobile 25 Mai 2007
[JS] Petits problemes pour un script Développement d'un site Web ou d'une appli mobile 12 Août 2006
[JS] window.location.href ou document.location.href ? Administration d'un site Web 12 Mai 2005
Compatibilité Thunderbird 78.8.1 et charset 7 bits. Le café de WebRankInfo 5 Avril 2021
Formulaire html5 : compatibilité navigateurs Développement d'un site Web ou d'une appli mobile 1 Mars 2020
Compatibilité Javascript pour IE. Demandes d'avis et de conseils sur vos sites 21 Avril 2019
Optimisations SEO avant migration et compatibilité mobile ? Débuter en référencement 16 Avril 2018
Compatibilité mobiles - ordis de bureaux Demandes d'avis et de conseils sur vos sites 5 Juillet 2017