2011-06-23 14 views
34

いくつかの値を持つ選択ボックスがあります。値ではなく、選択したオプションのテキストを取得するにはどうすればよいですか?jQueryで選択したオプションのテキストを取得

$j(document).ready(function(){ 
    $j("select#select_2").change(function(){ 
     val = $j("select#select_2:selected").text(); 
     alert(val); 
    }); 
}); 

しかし、それはundefinedに戻って来ています:

<select name="options[2]" id="select_2"> 
    <option value="">-- Please Select --</option> 
    <option value="6" price="0">100</option> 
    <option value="7" price="0">125</option> 
    <option value="8" price="0">150</option> 
    <option value="9" price="0">175</option> 
    <option value="10" price="0">200</option> 
    <option value="3" price="0">25</option> 
    <option value="4" price="0">50</option> 
    <option value="5" price="0">75</option> 
</select> 

は、私はこれを試してみました。

答えて

56

閉じる、あなたはあなたが実際に=価値を置くことができ

$('#select_2 option:selected').html() 
+1

( '#のselect_2:選択')$ます。HTML()も動作しますか? –

+0

@JoseFaeti明らかに、はい:http://jsfiddle.net/jomanlk/kcWQw/7/ – JohnP

+0

$( '#select_2')。find( 'option:selected').html()がより効率的になります;)。 – Archangel

5

val = j$("#select_2 option:selected").text(); 

あなたが代わりに<option>

0

<select>を選択しているにあなたのセレクタを変更し使用することができますテキストを入力してからdo

$j(document).ready(function(){ 
    $j("select#select_2").change(function(){ 
     val = $j("#select_2 option:selected").html(); 
     alert(val); 
    }); 
}); 

それとも私は似たようなケースでやったことは、あなたが未定義を持っている必要があり、この第二のオプションで

<select name="options[2]" id="select_2" onChange="JavascriptMethod()"> 
    with you're options here 
</select> 

ました。 は、それがパトリック

0

:)

を働いていた場合もuは、この私はわからないけれども少し速く解決策になるかもしれません

$('#select_2').find('option:selected').text(); 

検討することができ、私にフィードバックを与えます。

12
$(document).ready(function() { 
    $('select#select_2').change(function() { 
     var selectedText = $(this).find('option:selected').text(); 
     alert(selectedText); 
    }); 
}); 

Fiddle

+0

これは最もエレガントなものです...特にオブジェクトとしてselectがある場合 – MYNE