liste onselect

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : liste onselect

par Ryle » 29 janv. 2007, 12:11

C'est parce que "continent" est la valeur du premier élément de ta liste (index 0), et que tu rejettes celui-ci explicitement :

Code : Tout sélectionner

i = document.Choix.Liste.selectedIndex; if (i == 0) return;
Le tableau d'option d'un select est indexé comme un tableau javascript à partir de 0 et non de 1. Donc forcément, lorsque le premier élément est sélectionné (i==0) , il sort de la fonction (return) et n'exécute pas la suite.
Lorsqu'aucun élément d'une liste n'est selectionné, la valeur du selectedIndex est -1 :)

par Invité » 28 janv. 2007, 19:48

je précise qu'un } a été oublié sur le code que j'ai posté, a la fin de la fonction. Mais il est bien dans mon code.

par Invité » 28 janv. 2007, 19:44

non, j'ai essayé mais ça ne semble pas être la raison. Tous les autres items fonctionnent parfaitement.

par rami » 28 janv. 2007, 19:32

Tu as oublié de fermer les balises <option> :
<SELECT NAME="Liste" onChange="call_map()">
                <OPTION VALUE="continent">Choisir un pays </OPTION>
                <OPTION VALUE="mali">Mali</OPTION>
                 <OPTION VALUE="togo">Togo</OPTION>
               <OPTION VALUE="gabon">Gabon</OPTION>
</SELECT> 

liste onselect

par Invité » 28 janv. 2007, 19:12

Bonjour à tous,
J'ai créé une liste déroulante qui appelle une fonction onselect.
Tous les items de la liste fonctionnent sauf l'item par défaut.
Voici mon code.

La liste déroulante:

Code : Tout sélectionner

<SELECT NAME="Liste" onChange="call_map()"> <OPTION VALUE="continent">Choisir un pays <OPTION VALUE="mali">Mali <OPTION VALUE="togo">Togo <OPTION VALUE="gabon">Gabon </SELECT>
Et la fonction call_map() . Elle recoit la valeur sélectionnée dans la liste:

Code : Tout sélectionner

function call_map(){ i = document.Choix.Liste.selectedIndex; if (i == 0) return; country = document.Choix.Liste.options[i].value;
Je reçois toutes les valeurs sauf "continent". Le onselect ne marche pas sur l'élément par défaut.
Qu'ai je oublié?

Merci pour vos réponses.