Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/06/2014, 11:31
Avatar de totti026
totti026
 
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: ocultar o remover option select multiple

mira este ejemplo...
existen los mismos input en los 2 select.. deberia el primero estar vacio...
Código HTML:
Ver original
  1. <!doctype html>
  2. <html lang="es">
  3.     <meta charset="UTF-8">
  4.     <title>select</title>
  5.    
  6. </head>
  7. <body onload="limpiarSelect1('delete')">
  8.     select 1
  9.     <select name="uno" id="uno" multiple="multiple">
  10.         <option value="1">mochila</option>
  11.         <option value="2">zapatos</option>
  12.         <option value="3">utiles</option>
  13.        
  14.     </select>
  15.     <br>
  16.     select 2
  17.     <select name="dos" id="dos" multiple="multiple">
  18.         <option value="1">mochila</option>
  19.         <option value="2">zapatos</option>
  20.         <option value="3">utiles</option>
  21.        
  22.     </select>
  23.  
  24.     /*
  25.         @param modo 'delete' ó 'disable'
  26.     */
  27.     function limpiarSelect1(modo)
  28.     {
  29.         modo = modo || 'delete';
  30.        
  31.         if (modo!='delete' && modo!='disable')
  32.            throw new Error('Modo incorrecto');
  33.        
  34.         sel1 = document.getElementsByName('uno')[0];
  35.         sel2 = document.getElementsByName('dos')[0];
  36.    
  37.         conj1 = sel1.getElementsByTagName('option');;
  38.         conj2 = sel2.getElementsByTagName('option');;
  39.        
  40.         // recorro el primer select
  41.         for (var i=0; i<conj1.length;i++)
  42.        {  
  43.            // recorro el segundo select    
  44.            for (var j=0; j<conj2.length;j++)
  45.        
  46.            if (conj1[i].value==conj2[j].value)
  47.            {
  48.                console.log(modo+' para '+conj1[i].value);
  49.                if (modo=='delete')
  50.                {
  51.                    sel1.removeChild(conj1[i]);
  52.                    i--;  // toca re-ajustar indice luego de matanza :)
  53.                }else
  54.                    conj1[i].disabled='disabled'
  55.            }  
  56.        }  
  57.    }  
  58.    
  59. </body>
  60. </html>