2011-01-12 20 views
16

Jak obsługiwać zdarzenia dla elementów opcjonalnych?Kliknij opcję event

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

Po kliknięciu elementu opcji chcę wyświetlić mały opis elementu. Wszelkie pomysły, jak to zrobić?

+0

jaki opis? – amosrivera

+2

Jeśli ktoś przyszedł tutaj po rozwiązanie javascript (nie jQuery), po prostu dodaj detektor zdarzeń dla zdarzenia 'change'. –

+0

Na przyszłość, pierwsze rozwiązanie podane w odpowiedzi @ niksvp jest właściwie poprawną odpowiedzią na to pytanie. Podana odpowiedź jQuery jest specyficzna dla jQuery, podczas gdy pytanie to nie określa jej użycia. – ManoDestra

Odpowiedz

29

Będziesz chciał użyć jQuery's change event. Wyświetlam tekst opcji jako alert, ale możesz wyświetlać, co chcesz, w zależności od Twoich potrzeb. (Można też, oczywiście, umieścić go wewnątrz innej części strony ... nie trzeba być czujnym.)

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

Należy również pamiętać, że I dodaje identyfikator tagu select tak że łatwiej można sobie z nim poradzić (nazwałem to myOptions).

Przykład: http://jsfiddle.net/S9WQv/

+0

to nie działa w IE9 –

+1

Dobrze wiedzieć, że '# myOptions' jest znacznikiem' select'. – Tomasz

21

określony przez JasCav jQuery można osiągnąć to samo w JavaScript używając

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

Alternatywnie onclick zdarzeń opcji, ale należy pamiętać, że nie jest kompatybilna ze wszystkimi przeglądarkami.

<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

Jak to jest dobre rozwiązanie? Możesz wybierać opcje za pomocą klawiatury, nie będą one uruchamiać niczego podobnego. –

+0

@StevenLu - Dobra uwaga, w tym przypadku możesz również powiązać wydarzenie "keypress". Ale tutaj OP napotyka trudności w przypadku zdarzenia "kliknięcie", które odzwierciedla się w odpowiedzi. – niksvp

+0

Przypuszczam, ale jest to przypadek [problemu XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) i za pomocą kliknięcia jest gdzieś na spektrum między marginalnie źle i całkowicie źle. Moje przeczucie polega na tym, że zarówno obsługa kliknięć, jak i klawiatury nie pozwalają na działanie tej funkcji na żadnej platformie mobilnej. –