[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. 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.
    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. 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. 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. >> 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. 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. 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. essai
                  var a = document.getElementById("idduchamp").value;
                  var b = a.split('(');
                  var montypeprod = b[0];
                  alert(montypeprod);
                  1. ta une erreur kkpart alors (jutilise cette fonction tous les jours sur ie)
                    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. change le par document.getElementById("idduchamp").value;

                        et rajoute id="idduchamp" dans le input que tu veux