Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2014, 06:38
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: ocultar o remover option select multiple

Hola,

Ocultar un OPTION no se puede

Asi que aun puedes "remover" el elemento o "deshabilitarlo" y te hice una funcion que segun un parametro hace una cosa o la otra

Código Javascript:
Ver original
  1. <form action="" method="">
  2.     Select 1<br/>
  3.  
  4.     <select name="elementos1" multiple >               
  5.         <option value="zapatos">zapatos</option">
  6.         <option value="utiles" >utiles</option">
  7.         <option value="pizarron" >pizarron</option">    
  8.     </select>
  9.     <p/>
  10.    
  11.     Select 2<br/>
  12.     <select name="elementos2" multiple >       
  13.         <option value="mochila">mochila</option">      
  14.         <option value="utiles" >utiles</option">
  15.         <option value="pizarron" >pizarron</option">    
  16.     </select>
  17. </form>
  18. <p/>
  19.  
  20. <a href="javascript:limpiarSelect1('disable');">Deshabilitar options</a><br/>
  21. <a href="javascript:limpiarSelect1('delete');">Borrar options</a>
  22.    
  23. <script>
  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('elementos1')[0];
  35.         sel2 = document.getElementsByName('elementos2')[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. </script>
__________________
Salu2!

Última edición por Italico76; 10/06/2014 a las 07:36