Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2012, 08:25
Nexus10
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Select multiple y evento onchange

Hola a tod@s.

He encontrado esta duda en muchas páginas de internet pero no consigo encontrar una solución que se adapte a mi problema.
La cosa es que tengo un select múltiple y necesito controlar la opción que se haya pulsado en ese momento. Hay una forma que me funciona en Firefox:

Código HTML:
Ver original
  1. <select multiple="multiple" id="datos" name="info">
  2.     <option value="1" onclick="datosP(this.value)">Dato 1</option>
  3.     <option value="2" onclick="datosP(this.value)">Dato 2</option>
  4.     <option value="3" onclick="datosP(this.value)">Dato 3</option>
  5.     <option value="4" onclick="datosP(this.value)">Dato 4</option>

y en javascript:

Código Javascript:
Ver original
  1. function datosP(opcion){
  2.    
  3.   alert("Has pulsado la opción" + opcion);
  4.     }

Pero esto no funciona en IE.
Para que funcione en IE hay que usar, por ejemplo, el evento onchange en el select:

Código HTML:
Ver original
  1. <select multiple="multiple" id="datos" name="info" onchange="datosP(this.value)">
  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>
Pero con esto no consigo lo que quiero. Si señalo en la opcion 1, por ejemplo, me muestra bien el mensaje, pero si ahora pulso la tecla ctrl y señalo otra opcion el mensaje siempre es que he pulsado la opcion 1. Lo más que se puede conseguir es que te muestre todas las opciones que hay seleccionadas, pero yo no quiero eso. Yo quiero saber que opcion ha sido la que he señalado la última aunque haya más opciones señaladas.
¿Habría alguna forma de conseguirlo usando onchange o usando otro evento?
Muchas gracias. Un saludo.