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

100

У меня есть раскрывающийся список с парой "ID, Name".

пример

Джон Миллер
Джим Смит
Джен Морсин

У Джона Миллера ID 101, у
Джима Смита ID 102, у
Джен Морсин ID 103.

Когда я делаю следующее:

var arNames = $('#Crd').val() 

и я выбираю Джона Миллера, я получаю 101. Я бы хотел получить Джона Миллера.

Нейт Пет
источник
Проверьте stackoverflow.com/questions/1643227/…
Franz

Ответы:

185

$('#Crd').val()предоставит вам выбранное значение раскрывающегося элемента. Используйте это, чтобы получить выбранный текст опций.

$('#Crd option:selected').text();
ШанкарСанголи
источник
3
$ ('# Crd option: selected'). Text () или $ ('# Crd option: selected'). Val (), .text дает вам значение отображаемого текста, а не значение
Патрик Чой,
$ ('# Параметр Crd: selected'). Val (); по цене
asifaftab87
13

Лучше всего использовать:

$("#yourid option:selected").text();

В зависимости от требований вы также можете использовать этот способ:

var v = $("#yourid").val();
$("#yourid option[value="+v+"]").text()
Сандип Пал
источник
5

Если вы используете <select>, .val()получает «значение» выбранного <option>. Если у него нет value, он может вернуться к id. Поместите значение, которое вы хотите вернуть, в valueатрибут каждого<option>

Изменить: см. Комментарии для разъяснения того, что на valueсамом деле (не обязательно равно valueатрибуту).

Ансель Сантоза
источник
1
Просто пояснение: .val () возвращает свойство реального значения, а не значение атрибута HTML.
Чад
Верный. Однако в этом случае нет практической разницы, поскольку OP, похоже, не хочет изменять values в любой момент.
Ансел Сантоза
2
.val() gets the 'value' attribute of the selected <option>, как я уже сказал: просто уточняю.
Чад
Что, если мне нужен индекс или идентификатор, а не текст?
bgmCoder
5

Это сработало для меня!

$('#selected-option option:selected').val()

Надеюсь, это кому-то поможет!

Программатор N00b
источник
3
var sal = $('.selectSal option:selected').eq(0).val();

selectSal это класс.

Аканкша Сингх
источник
3

Попробуй это:

var text = $('#YourDropdownId').find('option:selected').text();
Ферейдун Барикзехи
источник
2

Другой вариант:

$("#<%=dropDownId.ClientID%>").children("option:selected").val();
user3166722
источник
0

Как было указано ... в selectполе .val()атрибут предоставит вам значение выбранной опции. Если выбранный параметр не имеет атрибута значения, по умолчанию будет использоваться отображаемое значение параметра (это то, что показано в примерах документации jQuery.val .

вы хотите использовать .text()выбранный вариант:

$('#Crd option:selected').text()

Lhagemann
источник
0

Это дает вам текущее значение раскрывающегося списка, если в раскрывающемся списке есть идентификатор "someId".

$("#someId").val();
Джесвин
источник
0

$('.leave_response').on('change', function() {
    var responseId = $(this).val();
    console.log(responseId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
    <select class="leave_response" name="leave">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
</td>

Ясас Малинга
источник
0

Передайте идентификатор и удерживайте его в переменной и передайте переменную куда угодно.

var temp = $ ('выберите [имя = имя ID]'). val ();

Абхиджит Патра
источник
$ ('select [name = ID Name] option: selected'). val (); Этот тоже работает
Абхиджит Патра