jQuery и тег «выбрать» - PullRequest
       41

jQuery и тег «выбрать»

1 голос
/ 08 августа 2011

У меня есть тег <select>, и мне нужно выбрать значение выбранной опции.

<select id="foo">
  <option value="1">a</option>
  <option value="2">b</option>
  <option value="3">c</option>
</select>

В jQuery я пытаюсь использовать метод val(), чтобы сделать это следующим образом:

$('#foo').val();

Проблема в том, что он всегда возвращает 1 - значение по умолчанию для выбранной опции!

Почему это так?

Ответы [ 5 ]

5 голосов
/ 08 августа 2011

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

$("#foo option:selected").val();

изменить: DEMO здесь

2 голосов
/ 08 августа 2011

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

 $('#foo :selected').val();

Проверьте это:

$('#foo').change(function() {
    console.log($('#foo :selected').val());
}).change(); // this change will fire for first time and give the value `1`
2 голосов
/ 08 августа 2011

Если элемент <select> не содержит параметров с атрибутом selected, по умолчанию выбирается первый параметр.

Если вы измените выбор и запустите val(), вы получите другое значение.

Попробуйте это и скажите мне, если оно все еще дает вам одно и то же значение каждый раз, когда оно изменяется

$('#foo').change(function() {
    console.log($(this).val());
});
0 голосов
/ 27 ноября 2012

Это также может произойти, если у вас есть более одного элемента DOM с атрибутом id, который вы используете в своем селекторе.

jQuery будет правильно связывать события со всеми элементами, но затем использовать только первое в DOM при запросе его значения.

0 голосов
/ 08 августа 2011
$("select option:selected").each(function () {
    $(this).val();
});
...