[Javascript] document.form.objet.value pb IE

Résolu
Salut à tous !

Je tiens à signaler que je débute en javascript.

Donc voilà mon soucis :
j'ai créé une fonction en js qui est parfaitement fonctionnelle sur Firefox mais pas sur IE 7. Vous trouverez ci-dessous la partie de code qui pose probleme :

function fctajax(typeprod,budget)
{
var montypeprod = document.accessoires.typeprod.value.split('(');
var montypeprod = montypeprod[0];
alert(montypeprod);
.......
}
}

en fait IE ne comprend pas "document.accessoires.typeprod.value" et ne me retourne rien dans le alert de la ligne 3 tandis que Firefox le comprend et execute la fonction sans erreur.
Je tiens par ailleurs a préciser que le comportement est le meme avec un alert(document.accessoires.typeprod.value); placé en premiere ligne dans la fonction

Si vous avez des idées n'hésitez pas ! ;)

15 réponses

  1. change le par document.getElementById("idduchamp").value;

    et rajoute id="idduchamp" dans le input que tu veux
    1. Merci pour ta réponse mais malheureusement ca n'y change rien, c'est toujours fonctionnel sur Firefox mais pas sur IE :o
      1. ta une erreur kkpart alors (jutilise cette fonction tous les jours sur ie)
        1. essai
          var a = document.getElementById("idduchamp").value;
          var b = a.split('(');
          var montypeprod = b[0];
          alert(montypeprod);
          1. Je m'en doute bien en effet :p
            Le probleme est que je ne pense pas avoir fait d'erreur dans mon code HTML définit comme suit :

            <form name="accessoires">
            <select name="typeprod" id="typeprod">
            <?php mon code php ?>
            </select>
            <input type="text" id="budget" name="budget" size="5" />
            </form>
            <input type="submit" value="OK" onclick="javascript:fctajax('typeprod','budget'); return false;" />

            d'autant que firefox interprete bien ma fonction :o
            1. J'ai essayé
              var a = document.getElementById("idduchamp").value;
              var b = a.split('(');
              var montypeprod = b[0];
              alert(montypeprod);

              mais ca n'y change rien car IE ne comprend pas document.getElementById("idduchamp").value à ma grande surprise :o
              en revanche il comprend tres bien document.accessoires.budget.value pour mon champ <input>
              1. >> Pk ta mis return false ?

                Car ma fonction execute de l'AJAX. Par contre l'erreur ne vient pas de là.
                Pour + de précision ca sert a indiquer au moteur javascript d'arreter de bosser une fois la fonction executée.
                1. et pour ce que tu a fait j'aurai fait :

                  function fctajax(ids,budget)
                  {
                  var a = document.getElementById(ids).value;
                  var b = a.split('(');
                  var montypeprod = b[0];
                  alert(montypeprod);
                  .......
                  }
                  1. function fctajaxx(typeprod,budget)
                    {
                    alert(document.getElementById(typeprod).value);
                    }

                    alert ne retourne rien sur IE en revanche :

                    function fctajaxx(typeprod,budget)
                    {
                    alert(document.getElementById(budget).value);
                    }

                    alert retourne la bonne valeur oO
                    1. c'est bien ca qui me rend fou car l'id définit en HTML est le bon comme tu peux en juger :

                      <select name="typeprod" id="typeprod">

                      <input type="submit" value="OK" onclick="javascript:fctajaxx('typeprod','budget');" />

                      par ailleurs FF y arrive mais pas IE.
                      1. Probleme Résolu !!
                        Je tiens a te remercier pour ton aide resalut.

                        En fait pour IE il faut écrire le code de la maniere suivante :

                        function fctajaxx(typeprod,budget)
                        {
                        var montypeprod = document.getElementById(typeprod);
                        alert(montypeprod.options[montypeprod.selectedIndex].text);
                        }

                        Ceci est spécifique bien entendu à la balise select.