bonjour.
voilà j'ai un problème sur la permutation des valeurs de deux listes (html:select).

je dispose de deux listes à choix multiples, et moyennant deux boutons je voudrais faire passer les valeurs selectionnées d'une des listes vers l'autre (dans les deux sens selon le bouton), puis le tout est transmis à une action struts.

Code javascript pour la permutation:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function deplacer(l1,l2) {
   if (l1.options.selectedIndex>=0) {
	for (var i=0;i<l1.options.length;i++) {
	   if (l1.options[i].selected) {
	       o=new Option(l1.options[i].text,l1.options[i].value);
	       l2.options[l2.options.length]=o;
	       l1.options[i]=null;						}
        }
     } else
          alert("Aucun droit sélectionné");       
  }
partie du code de la page:

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
 
<font size="2"><strong>Liste 1</strong></font>
        <html:select property="id_tache_g" size="10" multiple="true" tyleClass="largeurListes">
             <html:options collection="vect1" property="id_tache" labelProperty="libelle"/></html:select></td>
 
<td>
<input type="button" value="Attribuer >>" onclick="Deplacer(this.form.id_tache_g,this.form.id_tache_d)" >
<input type="button" value="&lt;&lt; Retirer" onclick="Deplacer(this.form.id_tache_d,this.form.id_tache_g)">
</td>				
<td><font size="2"><strong>Liste 2</strong></font>
<div align="center">
 
        <html:select property="id_tache_d" size="10" multiple="true" styleClass="largeurListes">
            <html:options collection="vect2" property="id_tache" labelProperty="libelle"/>
          </html:select></div></td>
le soucis c'est qu'à la recupération dans l'action, parfois ça marche bien, et parfois j'obtiens des valeurs redondantes dans les deux listes, ce qui ne devrait pas se produire (l1.options[i]=null

un coup de pouce me rendrait vraiment service car j'ai épuisé toutes mes batteries.

Merci d'avance.