2012-02-12 141 views
10

Tengo un simple html seleccione la etiqueta con algunas opciones adjuntos:ejecutar javascript html función de seleccionar

<select> 
<option>school a</option> 
<option>school b</option> 
<option>school c</option> 
</select> 

me gustaría adjuntar algunos controladores de eventos simples a las opciones de la misma manera que lo haría decir .. . un enlace:

<option onclick="scheduleA();">school a</option> 

necesito para construir una función de JavaScript separada para hacer frente a la gestión de eventos en esta situación o hay algo de hTML rápida que realizar esta tarea?

+0

Eche un vistazo a 'onchange'. Usted cuold escribe una función con parámetro. – Smamatti

+0

Ahí tienes mi amigo http://stackoverflow.com/questions/2000656/using-href-links-inside-option-tag – Alexander

+0

Gracias Alex, no vi esto antes de publicar. – kjarsenal

Respuesta

14

Será mejor que asigne onChange="schedule(this.value); en el <select>. En parte porque realmente funciona, en parte para evitar el código redundante si se selecciona la misma opción dos veces, en parte porque menos controladores de eventos siempre son mejores.

+0

@kjarsenal: Si está soportando versiones anteriores de IE, simplemente asegúrese de darle a cada elemento 'option' su propio atributo' value'. El IE antiguo no sustituirá automáticamente el contenido de texto de la 'opción 'cuando no le dé un atributo de valor. –

+0

observado. esos valores serán generados dinámicamente por el marco. gracias. – kjarsenal

7

utilizar un evento onchange en el select

<select onchange="scheduleA.call(this, event)"> 

A continuación, en el controlador ...

function scheduleA(event) { 
    alert(this.options[this.selectedIndex].text); 
} 

DEMO:http://jsfiddle.net/hYY6X/

0

uso onchange lugar

<select onchange="schedule(this.value)"> 
<option>school a</option> 
<option>school b</option> 
</select> 

function schedule(selectedValue){ 
    ... do something with selectedValue 
} 
+1

Eso tal vez, excepto que la respuesta no estaba allí cuando cargué la página ... En todo caso, refuerza el hecho de que es una solución adecuada. Los moderadores se sienten libres de eliminar o lo que sea. No llevo tanto tiempo aquí, pero realmente tengo la impresión de que hay una actitud que me desagrada de la comunidad, que no es nada alentadora – dannix

Cuestiones relacionadas