Selected="selected" ne marche pa

Résolu
Bonjour,

je vous montre d'abord le code:

<select class="select_sond" name="type_quest[]" onchange="Choix(this)">
				<option value="text1" selected="selected">   Texte</option>
				<option value="text2">   Texte court multiple</option>
				<option value="textarea">Texte de paragraphe</option>
				<option value="checkbox">   Choix multiple</option>
				<option value="radio">Cases à cocher</option>
				<option value="select">  Selectionner dans une liste</option>
				<option value="scale">   Echelle</option>
				<option value="condition">   Question conditionelle</option>
	</select>


Mon problème ici est que si je selectionne un champ (autre que le premier ) et j'actualise ma page sous firefox, l'option sélectionnée ne change pas. Ceci est très important pour le projet sur lequel je travaille, donc aidez moi s'il vous plait.

Je veux qu'en actualisant la page, le select sera placé sur la première option

Merci à tous
Configuration: Windows XP
Firefox 3.0.13

7 réponses

  1. bonjour
    précise stp

    je ne suis pas dans ta tête et
    Mon problème ici est que si je selectionne un champ (autre que le premier ) et j'actualise ma page sous firefox, l'option sélectionnée ne change pas


    ne me parle pas du tout
    1. J'explique:

      1- Je charge ma page
      2- la première que je vois dans la liste déroulante est
      Texte

      3- je sélectionne par exemple
      Choix multiple

      4- si j'actualise ma page après le select devra être sur Texte (ce qui est tout à fait logique et qui fonctionne d'ailleurs sous IE)!!

      Hélas, ça reste
      Choix multiple


      le problème aussi et que ce select est dynamique, donc je me retrouve avec le code qui apparait avec l'option Texte mais ayant l'option
      Choix multiple
      selectionnee et ça fausse tout dans le php plus tard

      J'espère que j'ai été clair

      Aidez moi
      1. Contributeur
        Oui ça c'est une caractéristique de Firefox.
        J'avoue que je ne sais pas comment la passer.
        Tu peux essayer en javascript avec un onload.
        Tu fais une fonction JS qui va sélectionner la première option de ton select et tu le met dans le onload="tafonction();" du <body>
        1. En fait, tu as une petite idée sur la fonction en question?

          function tafonction(){
            var selectNode = document.getElementsByTagName("select")[0];
            ...
          }


          je spécifie comment le champ à selectionner, sachant que je veux que ça soit le premier de ma liste déroulant?

          Merci bq
      2. J'ai pensé à ça mais j'ai posté ici dans l'espoir de trouver un moyen moins "fatiguant".

        Des propositions?
        1. Salut,

          Tu peux rajouter des meta pour éviter que FF ne garde la page en cache, ça force le navigateur à redemander la page au serveur :
          <meta http-equiv="Pragma" content="no-cache" />
          <meta http-equiv="Expires" content="-1" />

          Il me semble que ça devrait résoudre ton problème
        2. C'est une bonne idée, mais ça n'a pas marché. Je ne comprends pas pourquoi

          Help :'(
          1. C'est vrai, ça ne fonctionne pas, je n'avais pas essayé, persuadé!

            J'ai essayé ça par contre, et ça ça fonctionne, ça remet tous les 'select' de la page qui ont un 'selected="selected"' à cette valeur définie par défaut.

            Il y a 2 versions, la balise body :

            <body onload="javascript:
                var selects=document.getElementsByTagName('select');
                for(var i=0;i<selects.length;i++){
                    for(var j=0;j<selects[i].options.length;j++){
                       if(selects[i].options[j].getAttribute('selected')=='selected')
                            selects[i].selectedIndex=j;
                    }
                }
            ">


            ou la fonction dans un script :

            document.body.onload=function(){
                var selects=document.getElementsByTagName('select');
                for(var i=0;i<selects.length;i++){
                    for(var j=0;j<selects[i].options.length;j++){
                       if(selects[i].options[j].getAttribute('selected')=='selected')
                            selects[i].selectedIndex=j;
                    }
                }
            };


            Il suffit de choisir, et essayer au moins de comprendre : on boucle tous les select de la page où, pour chacun, on boucle les options pour trouver l'attribut 'selected' égal à 'selected', là on définie la valeur du select à la valeur de cette option.

            Remarque : comme en HTML, si plusieurs 'selected="selected"' étaient placés dans les options d'un select, c'est le dernier qui sera en dernier valable.

            EDIT : M***e, après la guerre !
        3. C'était tellement simple:
          function tafonction(){
            var selectNode = document.getElementsByTagName("select")[0];
            selectNode.selectedIndex = 0;
          }


          Merci quand même pour l'aide
          1. Contributeur
            Oui c'est ce que je t'ai proposé, la fonction qui définit que le premier élément de la liste déroulante est sélectionné.