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

WRInaute occasionnel
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
 
WRInaute impliqué
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 ;-)
 
WRInaute occasionnel
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
 
WRInaute occasionnel
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
 
WRInaute impliqué
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>
?
 
WRInaute occasionnel
hihi j'ai oublié :p

<input name="bouton2" type="submit" id="bouton2" onclick="this.disabled=1" value="Acheter">
 
Discussions similaires
Haut