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. 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é.
  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. 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
  4. J'ai pensé à ça mais j'ai posté ici dans l'espoir de trouver un moyen moins "fatiguant".

    Des propositions?
    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'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. 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