Подтвердить что ты не робот

Получить текст выбранного параметра с помощью jQuery

У меня есть поле выбора с некоторыми значениями. Как получить текст выбранных опций, а не значение?

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

Я пробовал это:

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

Но он возвращается с undefined.

4b9b3361

Ответ 1

Закрыть, вы можете использовать

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

Ответ 2

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

Fiddle

Ответ 3

Измените селектор на

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

Вы выбираете <select> вместо <option>

Ответ 4

Фактически вы могли бы поместить value = в текст, а затем сделать

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

С помощью этого второго варианта вы должны иметь undefined. Дайте мне отзыв, если он сработал:)

Патрик

Ответ 5

Также вы можете рассмотреть этот

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

который может быть немного быстрее, хотя я не уверен.