edit: rah zut je crois savoir d'où vient l'erreur, je supprime des élements de la liste en mm temps que je déplace donc le length n'est plus cohérent à l'itération suivante, je cherche une soluce et je mettrais à jour ce sujet
Voilà j'ai dans mon formulaire une zone où j'ai 2 select multiple avec au milieu des boutons pour faire des échanges entre les deux, j'ai créer une fonction pour ajouter (de gauche à droite) et supprimer un élément (de droite à gauche) et 2 autres fonctions pour tout ajouter et tout supprimer.
Les 2ere marchent trés bien (ajout/supp élément unique), mais lorsque j'utilise l'ajout ou la suppression multiple seul une partie des éléments se copie et pas tous bizzare...
ma fonction ajouter_tous: (supprimer_tous est sensiblement la mm dans l'autre sens):
voilà comprend pas trop, surtout lorsque j'affiche la taille des listes elles sont Ok par contre la boucle ne semble pas aller jusqu'a la bonne valeur de i, dans ma liste par exempe de 14 éléments la boucle va jusqu'a la 7e itération (i=6)...
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
20
21
22
23
24
25
26
27 function ajouter_tous(liste1,liste2) { var i=0; if (liste1.options.length>0) { alert(liste1.options.length); // affiche la bonne valeur !!! while ( i<liste1.options.length ) { opt = new Option(liste1.options[i].text,liste1.options[i].value); liste2.options[liste2.options.length]=opt; liste1.options[i]=null; i++; } } else { alert("liste vide!"); } }
merci pour vos réponses
Partager