Passer des éléments d'un select à un autre
Bonjour à tous,
Je me suis lancé dans le developpement d'un site web assez évolué et je ne connais pas bien javascript.J'ai besoin de votre aide^^
J'aimerai créé une formulaire avec 2 select et des boutons qui permettent de passer un élément d'un select à l'autre.J'ai récupérer le code ci dessous sur un autre site et j'essaye de le travailler pour qu'il réponde à mes besoins:
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
<script language="javascript" type="text/javascript">
function getSelectedValues (select) {
var selValues = new Array();
for (j = 0; j < select.options.length; j++){
selValues[selValues.length] = select.options[j].value;
}
return selValues;
}
function getSelectedOptions (select) {
var selOptions = new Array();
for (m = 0; m < select.options.length; m++){
if (select.options[m].selected) {
selOptions[selOptions.length] = select.options[m];
}
}
return selOptions;
}
function moveSelectedOptions(from, to){
fromSelect = document.getElementById(from)[0];
selOpt = getSelectedOptions(fromSelect);
var selValues = new Array();
if(selOpt.length>0){
selValues = getSelectedValues(fromSelect);
toSelect=document.getElementById(to)[0];
for(i=0;i<selOpt.length;i++){
option = selOpt[i];
fromSelect.removeChild(option);
toSelect.appendChild(option);
}
}
return selValues;
}
//Affichage des valeurs sélectionnées
function displayOptionsList(list){
//Enlever les commentaires ci-dessous pour afficher la valeur des options sélectionnées
/*var msg="";
for(n=0;n<list.length;n++){
option = list[n];
msg+="["+option.value+"]";
}
alert(msg);*/
}
</script>
</head>
<body>
<table>
<tr>
<td>
<select Id="list1" multiple>
<option value="1">Alain</option>
<option value="2">Jose</option>
<option value="3">Philippe</option>
</select>
</td>
<td>
<table>
<tr>
<td><div onclick="list = moveSelectedOptions('list1','list2'); displayOptionsList(list);">></div></td>
</tr>
<tr>
<td><div onclick="test();list = moveSelectedOptions('list2','list1'); displayOptionsList(list);"><</div></td>
</tr>
</table>
</td>
<td>
<select Id="list2" multiple>
<option value="4">Jacques</option>
<option value="5">Paul</option>
<option value="6">Pierre</option>
</select>
</td>
</table> |
Ce code me génére l'erreur select.options has no properties dans la console javascript de firefox qaund je cliques sur un des liens pour changer l'élément de place.
J'ai vraiment du mal à trouver d'ou ça vient. J'ai le droit d'écrire select.options.length, normalement...Si vous avez une idée de correction n'hésitez pas.
merci d'avance