Bonjour à tous,
Je souhaite mettre en place deux fenêtres "Select", transférer des "options" de l'une à l'autre, puis submiter tout le contenu de la première fenêtre pour l'envoyer au serveur.
Pour une question d'ergonomie IHM, les deux champs Select sont en mode "multiple = false" afin de manipuler les éléments un à un.
Pour submiter le contenu du Select dans son ensemble, je passe donc "multiple = true" au moment du submit pour autoriser la multiple sélection, puis je sélectionne l'ensemble des options à l'aide d'une boucle avant de submiter.
Code :
- function PostSelect(formulaire)
- {
- var cible = formulaire.elements["tab[]"];
- // On compte le nombre d'item de la liste select
- var nbCol = cible.length;
- // on passe le Select en Multiple
- cible.multiple = 'true';
- // On lance une boucle pour selectionner tous les items
- for (var a = 0; a < nbCol; a++)
- {
- cible.options[a].selected = 'selected';
- }
- // On soumet le formulaire
- formulaire.submit();
- }
|
Le code fonctionne parfaitement sous Firefox.
Sous IE 6, il fonctionne.... presque. En effet, il se produit un phénomène qui ressemblerait à un bug d'IE : seule la dernière option du Select est sélectionnée... et transmise
Là où ça devient étrange, c'est qu'en apportant la modification suivante (le Alert au milieu du code), tout fonctionne parfaitement!!!
Code :
- function PostSelect(formulaire)
- {
- var cible = formulaire.elements["tab[]"];
- // On compte le nombre d'item de la liste select
- var nbCol = cible.length;
- // on passe le Select en Multiple
- cible.multiple = 'true';
-
- alert ("hello world" );
- // On lance une boucle pour selectionner tous les items
- for (var a = 0; a < nbCol; a++)
- {
- cible.options[a].selected = 'selected';
- }
- // On soumet le formulaire
- formulaire.submit();
- }
|
J'ai alors pensé que IE avait besoin d'un délai pour prendre en compte le changement d'état. J'ai donc inséré à la place du Alert une boucle for comptant de 1 à 100 ou 1000, sans résultat.
Bref, je ne sais pas comment résoudre ce problème.
Merci d'avance à ceux qui pourront m'aider...