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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Ven Juil 27, 2007 13:42

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

Message le Mar Juil 15, 2008 21:40

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: Tout sélectionner
<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: Tout sélectionner
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


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Mar Juil 15, 2008 22:58

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 ;-)

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Ven Juil 27, 2007 13:42

Message le Mer Juil 16, 2008 10:49

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


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Mer Juil 16, 2008 11:04

le onsubmit n'est appelé que lors de l'appuie sur un input type submit est-ce le cas ?

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Ven Juil 27, 2007 13:42

Message le Mer Juil 16, 2008 12:10

Bon j'ai trouvé le HIC !

Code: Tout sélectionner
  <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


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Mer Juil 16, 2008 12:13

Code: Tout sélectionner
<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>

?

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Ven Juil 27, 2007 13:42

Message le Mer Juil 16, 2008 12:19

hihi j'ai oublié :p

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


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités