permutation valeurs deux select multiple
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:
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:
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="<< 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.