2011-01-12 33 views
16

¿cómo manejo los eventos para los elementos de opción?Haga clic en el evento de opción

<select> 
     <option value='option1'>Gateway 1</option> 
     <option value='option2'>Gateway 2</option> 
     <option value='option3'>Gateway 3</option> 
</select> 

Cuando se hace clic en un elemento de opción, quiero mostrar una pequeña descripción del elemento. Alguna idea de como hacer eso?

+0

qué tipo de descripción? – amosrivera

+2

Si alguien vino aquí para la solución javascript (no jQuery), simplemente agregue un detector de eventos para el evento 'change'. –

+0

Para referencia futura, la primera solución dada en la respuesta de @ niksvp es en realidad la respuesta correcta a esta pregunta. La respuesta de jQuery dada es específica de jQuery, mientras que esta pregunta no especifica su uso. – ManoDestra

Respuesta

29

Vas a querer utilizar jQuery's change event. Estoy mostrando el texto de su opción como una alerta, pero puede mostrar lo que quiera en función de sus necesidades. (Puede también, obviamente, lo puso dentro de otra parte de la página ... no tiene por qué ser una alerta.)

$('#myOptions').change(function() { 
    var val = $("#myOptions option:selected").text(); 
    alert(val); 
}); 

Además, nota, que he añadido una identificación para la etiqueta de modo select que puede manejar eventos más fácilmente (lo llamé myOptions).

Ejemplo: http://jsfiddle.net/S9WQv/

+0

esto no funciona en IE9 –

+1

bueno saber que '# myOptions' es una etiqueta' select'. – Tomasz

21

Según lo especificado por JasCav usando jQuery que puede lograr lo mismo en JavaScript utilizando

<select onchange="alert(this.options[this.selectedIndex].text);"> 
     <option value='option1'>Gateway 1</option> 
     <option value='option2'>Gateway 2</option> 
     <option value='option3'>Gateway 3</option> 
</select> 

Alternativamente, onclick caso de opción, pero tenga en cuenta que no es compatible con todos los navegadores.

<select> 
     <option value='option1' onclick="alert(this.value);" >Gateway 1</option> 
     <option value='option2'>Gateway 2</option> 
     <option value='option3'>Gateway 3</option> 
</select> 
+0

¿Cómo es esta una buena solución? Puedes elegir opciones con el teclado, no dispararán nada relacionado con el clic. –

+0

@StevenLu - Buena nota, en ese caso, también puede vincular el evento 'keypress'. Pero aquí OP enfrenta dificultades para el evento 'click', que se refleja en la respuesta. – niksvp

+0

Supongo, pero este es un caso del [problema XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) y usar click está en algún lugar del espectro entre marginalmente mal y totalmente equivocado. Mi corazonada es que usar manejadores de clics y teclados aún no permitirá que la función funcione en ninguna plataforma móvil. –

Cuestiones relacionadas