Witam,

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:
  1. <select id="pierwszy" multiple="multiple" class="multiple_size">
  2. <option>jakasoption1</option>
  3. <option>jakasoption2</option>
  4. <input type="button" id="kopiuj" value="Dodaj >" /><input type="button" id="usun" value="< Usuń" onclick="usunOption();/>
  5. <select id="drugi" name="drugi" multiple="multiple" class="multiple_size"></select>
  6.  
  7. <script type="text/javascript">
  8. function przenies(skad, dokad) {
  9. var select_pierwszy = document.getElementById(skad);
  10. var select_drugi = document.getElementById(dokad);
  11. if (select_pierwszy.length>0) {
  12. for (var x=0; x<select_pierwszy.length; x++){
  13. if (select_pierwszy.options[x].selected) {
  14. var NowyOption = new Option(select_pierwszy.options[x].firstChild.nodeValue, select_pierwszy.options[x].value, false, false);
  15. select_drugi[select_drugi.length] = NowyOption;
  16. }
  17. }
  18. }
  19. }
  20.  
  21. document.getElementById('kopiuj').onclick = function(){
  22. przenies('pierwszy', 'drugi')
  23. }
  24. function usunOption(NowyOption) {
  25. var selIndex = NowyOption.selectedIndex;
  26. if (selIndex != -1) {
  27. for(i=NowyOption.length-1; i>=0; i--)
  28. {
  29. if(NowyOption.options[i].selected)
  30. {
  31. NowyOption.options[i] = null;
  32. }
  33. }
  34. if (NowyOption.length > 0) {
  35. NowyOption.selectedIndex = selIndex == 0 ? 0 : selIndex - 1;
  36. }
  37. }
  38. }
  39.  
  40.  


Z góry dziękuję, za jakąkolwiek odpowiedź.