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.
Le code fonctionne parfaitement sous Firefox.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 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(); }
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 (en gris�), tout fonctionne parfaitement!!!
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.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 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(); }
Bref, je ne sais pas comment r�soudre ce probl�me.
Merci d'avance � ceux qui pourront m'aider...
Partager