JQuery - найти переключатель по значению

Как я могу использовать JQuery для поиска переключателя по его значению?

Ответ 1

Попробуйте следующее:

$(":radio[value=foobar]")

Это приведет к выбору всех переключателей с атрибутом value="foobar".

Ответ 2

Я использую jQuery 1.6, и это не сработало для меня: $(":radio[value=foobar]").attr('checked',true);

Вместо этого я использую: $('[value="foobar"]').attr('checked',true); и он отлично работает.

Фактический код, который я использую, сначала очищает радиостанции и использует prop вместо attr

$('[name=menuRadio]').prop('checked',false);

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);

Ответ 3

Это также может быть достигнуто:

$('input[type="radio"][value="aaa"]').val();

Здесь будет выбрано радио, которое имеет значение aaa


С помощью метода .filter():

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();

Ответ 4

скажем, что у вас есть что-то подобное в HTML:

<fieldset>
    <input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
    <input type="radio" name="UI_opt" value="printer"> Printer<br/>
    <input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
</fieldset>

тогда это работает.

$("fieldset input[name='UI_opt'][checked]").val()

Ответ 5

Полный селектор будет выглядеть следующим образом:

bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")

учитывая, что у вас, вероятно, есть несколько групп переключателей, подобных этому

<input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
<input name="ShipToBillingAddress" type="radio" value="False">

<input name="SomethingElse" type="radio" value="True" checked="checked">
<input name="SomethingElse" type="radio" value="False">

Использование селектора ID, подобного этому (следующий пример), плохо, потому что у вас не должно быть нескольких элементов с одинаковым идентификатором. Я предполагаю, что кто-то, находящий этот вопрос, уже знает, что это плохо.

$("#DidYouEnjoyTheMovie:radio[value=yes]")

Ниже приведено :radio

Потому что: radio - расширение jQuery, а не часть CSS спецификации, запросы с использованием: радио не может воспользоваться преимуществами повышение производительности, обеспечиваемое встроенным DOM-запросомSelectorAll() метод. Для повышения производительности в современных браузерах используйте [type = "radio" ] вместо этого.