Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/03/2012, 05:57
Nexus10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 3 meses
Puntos: 58
Respuesta: Select multiple y evento onchange

Bueno, pues al final lo conseguí, por lo menos la primera parte, la de saber que opción ha pulsado el usuario en un select múltiple.
Isabel, tu solución no funcionaba. Muestra siempre la opción seleccionada con el valor más alto, en vez de la opción pulsada.
Lo que he hecho es utilizar un array global, como ha dicho djaevi, aunque lo he hecho más sencillo que lo que él dice. Yo he hecho lo siguiente:

Código Javascript:
Ver original
  1. var arrayOpciones = new Array(); //Es el array global
  2.  
  3. function opcionSelected(){    
  4.     var opciones = document.getElementById("datos").options;
  5.     for (var i=0; i<opciones.length; i++){        
  6.         var opcion = opciones[i].value;        
  7.         if (opciones[i].selected){            
  8.             if (!enArray(opcion)){  //enArray() busca si opcion está en arrayOpciones                              
  9.                 arrayOpciones[arrayOpciones.length]=opcion;
  10.                 alert("Has señalado la opción" + opcion);
  11.             }
  12.         }
  13.     }
  14. }

y el HTML

Código HTML:
Ver original
  1. <select multiple="multiple" id="datos" name="info" onchange="opcionSelected()">
  2.         <option value="1">Dato 1</option>
  3.         <option value="2">Dato 2</option>
  4.         <option value="3">Dato 3</option>
  5.         <option value="4">Dato 4</option>
De todas formas, como dije, esto parece que es más lógico hacerlo con checkbox, pero como ya tenía otros checkbox en el formulario quería hacerlo con una lista.
Gracias a los dos. Un saludo.