Tengo un select múltiple en el cual tengo cuatro botones:
Añadir un elemento, borrar un elemento, añadir todos los elementos y borrar todos los elementos.
El de añadir todos y borrar todos es este:
Código:
El problema que tengo es que en el internet explorer funcionan sin problemas, pero en el firefox en vez de moverlos, lo que hace es copiarlos, osea si por ejemplo en lista1 tengo los valores:1,2,3 y 4 y le pulso al botón pasar todos, me pasa a lista2 los valores:1,2,3 y 4, pero no los quita de lista1, en cambio en internet explorer si lo hace correctamente.function anadirTodos(val) { var newOpt for (k=0;k<val.lista.length;k++) { newOpt = document.createElement("OPTION"); newOpt.text = val.lista.options[k].text; newOpt.value = val.lista.options[k].value; val.seleccionados.options.add(newOpt,val.seleccionados.length); //val.lista.options.remove(k); } for (k=0;k<val.lista.length;) { val.lista.options.remove(k); } } function eliminarTodos(val) { var newOpt for (k=0;k<val.seleccionados.length;k++) { newOpt = document.createElement("OPTION"); newOpt.text = val.seleccionados.options[k].text; newOpt.value = val.seleccionados.options[k].value; val.lista.options.add(newOpt,val.lista.length); //val.lista.options.remove(k); } for (k=0;k<val.seleccionados.length;) { val.seleccionados.options.remove(k); } }
También me ocurre que cuando añado un registro individualmente y luego lo quito, vuelve a la lista principal desordenado:
Este es el código:
Código:
¿Cómo puedo hacer que vuelva el registro a la lista ordenado alfabéticamente como lo tenía en un principio?function anadir() { obj=document.getElementById('lista'); if (obj.selectedIndex==-1) return; valor=obj.value; txt=obj.options[obj.selectedIndex].text; obj.options[obj.selectedIndex]=null; obj2=document.getElementById('seleccionados'); opc = new Option(txt,valor); eval(obj2.options[obj2.options.length]=opc); } function eliminar() { obj=document.getElementById('seleccionados'); if (obj.selectedIndex==-1) return; valor=obj.value; txt=obj.options[obj.selectedIndex].text; obj.options[obj.selectedIndex]=null; obj2=document.getElementById('lista'); opc = new Option(txt,valor); eval(obj2.options[obj2.options.length]=opc); }
Alguien puede hecharme una mano???
Un saludo ¡¡