Salut à tous
Ce n'est pas un BUG c'est une caractéristique sic !!
un BUG étrange c'est introduit dans les listes déroulante.
lorsque on fait ce genre de chose on s'attends à voir une alerte lorsque la valeur du select va changer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <select onchange="alert('changé');" > <option>1</option> <option>2</option> <option>3</option> </select>
Ce n'est pas toujours vrais
Sous FireFox l'alerte n'apparaît que si on change la valeur en utilisant la souris. et ne fonctionne pas avec les flèches du clavier
cela n'est cas pour les liste (select size="5")
pourquoi ???
il suffit de faire :
pour résoudre le problème. notez que sous IE le code est exécuté deux fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <select onchange="alert('changé');" onkeyup="alert('changé');" > <option>1</option> <option>2</option> <option>3</option> </select>
cela ne résout pas toutes les difficultés le code n'est pas exécuté par FireFox lorsque le changement est fait par la molette de la souris.
et là je n'ai pas trouvé de solution.
au vu de ces quelques lignes pour une fois on serait tenté de dire que IE fait mieux et plus logique que FireFox. mais ce n'est malheureusement pas le cas prenons le code suivant
ce cas est utilisé pour séparer un valeur ou pour faire plusieurs groupes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <select onchange="alert('changé');" onkeyup="alert('changé');" > <option>1</option> <optgroup label="groupe 1"> <option>2</option> <option>3</option> </optgroup> </select>
ex: "pas d'images" et "image1", "image2" ...
dans ce cas le comportement de FireFox ne change en rien des exemples précédents.
Quant à IE il se trouve affublé d'in comportement des plus étranges.
tout continue à fonctionner à la souris. l'évènement onchange est activé aussi si on change de valeur au clavier ou à la molette SAUF pour un élément bien précis
le onchange ne se déclenche pas lorsqu'on entre ou sort d'un groupe au clavier ou à la molette
le onkeyup résout le pb sur le clavier mais pas sur la molette.
dans l'exemple le passage de option2 à option1 et retour ne déclanche pas de onchange alors que optoin2 à option3 et retour ça fonctionne.
du coup cela devient pire que FireFox qui reste cohérent dans sont comportement.
conclusion le onchange n'est pas un onchange !!
A+JYT
modéré par denisC : modification du titre
Partager