2013-02-20 15 views
48

Mam listę rozwijaną takiego:Pobierz zaznaczony tekst opcji z JavaScript

<select id="box1"> 
<option value="98">dog</option> 
<option value="7122">cat</option> 
<option value="142">bird</option> 
</select> 

Jak mogę uzyskać opcji rzeczywisty tekst zamiast wartości przy użyciu JavaScript? mogę uzyskać wartość z czymś takim:

<select id="box1" onChange="myNewFunction(this.selectedIndex);" > 

Ale zamiast 7122 Chcę cat.

+0

this.innerHTML? – Kodemon

+2

http://stackoverflow.com/a/1085810/1339473 zobacz więcej pomocy – QuokMoon

+0

możliwy duplikat [Jak uzyskać wybraną wartość listy rozwijanej przy użyciu JavaScript?] (Http://stackoverflow.com/questions/1085801/how -to-get-the-selected-of-dropdownlist-using-javascript) - pomimo tytułu, odpowiada na twoje pytanie. –

Odpowiedz

76

opcje spróbować

<script> 
    function myNewFunction(sel) 
    { 
     alert(sel.options[sel.selectedIndex].text); 
    } 
</script> 

<select id="box1" onChange="myNewFunction(this);" > 
    <option value="98">dog</option> 
    <option value="7122">cat</option> 
    <option value="142">bird</option> 
</select> 
+3

Pierwsza zasada przy próbie użycia wyrażenia regularnego - szukaj przeszukiwania stosu, dopóki nie zobaczysz rozwiązania, które nie potrzebuje regex-okrzyków :) – Mirror318

1

Musisz uzyskać innerHTML opcji, a nie jej wartość.

Użyj this.innerHTML zamiast this.selectedIndex.

Edytuj: Najpierw musisz pobrać element opcji, a następnie użyć innerHTML.

Użyj this.text zamiast this.selectedIndex.

+0

To jest źle. Będzie zawierał element 'innerHTML' of'