Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/10/2010, 17:14
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: eliminar y restaurar opciones select

Probá así:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
script type="text/javascript">
function 
getElement(elElemento) {
return 
document.getElementById(elElemento);
}
 
var 
vuelta 0;
var 
ok '';
var 
eliminadosVal = [[],[],[],[],[]];  
 
function 
delOpcion(val) {
eliminados 0;
if (
val.id == ok && vuelta >= 1) {alert('Antes de elegir otra opción de este select, has de restablecer la última opción'); val.options[0].selected 'selected'; return;} 
 
var 
combo val.name;
var 
document.form1;
 
for (var 
0val.options[i]; i++) {
 
    if (
== val.selectedIndex) {
 
        for (var 
0sel f[combo].lengthseln++) {
 
            if (
val.id != f[combo][n].id) {
 
                for (var 
0f[combo][n].options[p]; p++) {
 
                    if (
val.value == f[combo][n].options[p].value) {
 
                        
eliminados++;
                        
eliminadosVal[0].unshift(val.value);
                        
eliminadosVal[1].unshift(p);
                        
eliminadosVal[2].unshift(f[combo][n].id);
                        
eliminadosVal[3].unshift(val);                      
                        
getElement(f[combo][n].id).options[p] = null;
                        
getElement('deshacer').disabled false;
                        
vuelta ++;
                break;
                    }
                }
 
            }
            
        }
break;
 
    }
 
}
ok val.id;
eliminadosVal[4].unshift(eliminados); // de cuantos select se ha eliminado este valor
}
 
onload=function(){
    
window.resetForm=document.body.innerHTML;
    
getElement('deshacer').onclick=function(){
        
document.body.innerHTML=window.resetForm;
        
vuelta 0;
        
ok '';
        
eliminadosVal = [[],[],[],[],[]]; 
        
getElement('deshacer').disabled=1;
        
    }
        
getElement('deshacer').disabled=1;
}
 

</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<select id="regalo_1" name="regalo[]" size="10" onchange="delOpcion(this)">
<option value="">Regalo para Ti</option>
<option value="Moto">Moto</option>
<option value="Coche">Coche</option>
<option value="Barco">Barco</option>
<option value="Bicicleta">Bicicleta</option>
</select>
 
<select id="regalo_2" name="regalo[]" size="10" onchange="delOpcion(this)">
<option value="">Regalo para Padres</option>
<option value="Coche">Coche</option>
<option value="Casa">Casa</option>
<option value="Viaje">Viaje</option>
<option value="Moto">Moto</option>
</select>
 
<select id="regalo_3" name="regalo[]" size="10" onchange="delOpcion(this)">
<option value="">Regalo para Hermanos</option>
<option value="Consola">Consola</option>
<option value="Bicicleta">Bicicleta</option>
<option value="Moto">Moto</option>
<option value="Mp4">Mp4</option>
</select>
 
<input type="button" id="deshacer" value="Reestablecer Opciones" />
</form>
</body>
</html>