Page 1 sur 1

liste onselect

Posté : 28 janv. 2007, 19:12
par Invité
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.

Posté : 28 janv. 2007, 19:32
par rami
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> 

Posté : 28 janv. 2007, 19:44
par Invité
non, j'ai essayé mais ça ne semble pas être la raison. Tous les autres items fonctionnent parfaitement.

Posté : 28 janv. 2007, 19:48
par Invité
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.

Posté : 29 janv. 2007, 12:11
par Ryle
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 :)