Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2008, 05:49
FlashO
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 9 meses
Puntos: 0
solo funciona en un explorador

Hola ¡¡

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:
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);
		}
	}
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.



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:
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);     
}
¿Cómo puedo hacer que vuelva el registro a la lista ordenado alfabéticamente como lo tenía en un principio?


Alguien puede hecharme una mano???

Un saludo ¡¡

Última edición por FlashO; 21/04/2008 a las 05:52 Razón: Añadir mas código