Potrzebuję do strony dwóch list multiple, z których jedna pobiera dane z bazy danych i umieszcza je w liście, a druga jest pusta. Po kliknięciu przycisku dodaj kopiuje zawartość zaznaczonego option i z pierwszej listy do drugiej...
Udało mi się napisać funkcję kopiowania, natomiast z usuwaniem jest problem i nie wiem dlaczego nie działa...
Chciałbym także, żeby dodana opcja z listy1 po dodaniu do 2 zmieniała się na disabled=true, a po kliknieciu usuń z listy2 - disabled=false.
Poniżej załączam obrazek, który daje lepszy pogląd sytuacji i kod w js:
Tu link do zilustrowania tego, co napisałem:
http://img832.imageshack.us/img832/4637/12941973.jpg
... i kod:
<select id="pierwszy" multiple="multiple" class="multiple_size"> <script type="text/javascript"> function przenies(skad, dokad) { var select_pierwszy = document.getElementById(skad); var select_drugi = document.getElementById(dokad); if (select_pierwszy.length>0) { for (var x=0; x<select_pierwszy.length; x++){ if (select_pierwszy.options[x].selected) { var NowyOption = new Option(select_pierwszy.options[x].firstChild.nodeValue, select_pierwszy.options[x].value, false, false); select_drugi[select_drugi.length] = NowyOption; } } } } document.getElementById('kopiuj').onclick = function(){ przenies('pierwszy', 'drugi') } function usunOption(NowyOption) { var selIndex = NowyOption.selectedIndex; if (selIndex != -1) { for(i=NowyOption.length-1; i>=0; i--) { if(NowyOption.options[i].selected) { NowyOption.options[i] = null; } } if (NowyOption.length > 0) { NowyOption.selectedIndex = selIndex == 0 ? 0 : selIndex - 1; } } } </script>
Z góry dziękuję, za jakąkolwiek odpowiedź.