2011-01-12 17 views
16

come gestisco gli eventi per gli elementi opzione?Fai clic sull'opzione evento

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

Quando si fa clic su un elemento opzione, desidero visualizzare una piccola descrizione per l'elemento. Qualche idea su come farlo?

+0

che tipo di descrizione? – amosrivera

+2

Se qualcuno è venuto qui per la soluzione javascript (non jQuery), basta aggiungere un listener di eventi per l'evento 'change'. –

+0

Per riferimento futuro, la prima soluzione fornita nella risposta di @ niksvp è in realtà la risposta corretta a questa domanda. La risposta fornita da jQuery è specifica di jQuery, mentre questa domanda non specifica il suo uso. – ManoDestra

risposta

29

si sta andando a voler utilizzare jQuery di change event. Sto visualizzando il testo della tua opzione come avviso, ma puoi mostrare ciò che vuoi in base alle tue esigenze. (È anche possibile, ovviamente, metterlo dentro un'altra parte della pagina ... non ha bisogno di essere un avviso.)

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

Inoltre, nota, che ho aggiunto un ID al tag select così che puoi gestire più facilmente gli eventi (l'ho chiamato myOptions).

Esempio: http://jsfiddle.net/S9WQv/

+0

questo non funziona in IE9 –

+1

buono sapere che '# myOptions' è un tag' select'. – Tomasz

21

Come specificato da JasCav utilizzando jQuery è possibile ottenere lo stesso in JavaScript utilizzando

<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> 

In alternativa, onclick caso di opzione, ma nota che non è compatibile con tutti i browser.

<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

Come è questa una buona soluzione? Puoi scegliere le opzioni con la tastiera, non faranno scattare nulla cliccato. –

+0

@StevenLu - In questo caso è anche possibile associare l'evento 'keypress'. Ma qui OP sta affrontando difficoltà per l'evento "click", che si riflette nella risposta. – niksvp

+0

Suppongo, ma questo è un caso del [problema XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) e l'uso del clic è da qualche parte sullo spettro tra marginalmente sbagliato e totalmente sbagliato. La mia impressione è che l'utilizzo di entrambi i gestori di clic e tastiera non consentirà comunque alla funzione di funzionare su qualsiasi piattaforma mobile. –

Problemi correlati