JQuery - найти переключатель по значению - PullRequest
90 голосов
/ 01 февраля 2010

Как бы я использовал JQuery, чтобы найти переключатель по значению?

Ответы [ 5 ]

135 голосов
/ 01 февраля 2010

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

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

При этом будут выбраны все переключатели с атрибутом value="foobar".

24 голосов
/ 03 сентября 2011

Я использую 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);
19 голосов
/ 16 декабря 2012

Этого также можно достичь:

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

Это выберет радио, которое имеет значение ааа


С .filter() метод:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();
5 голосов
/ 26 октября 2011

скажем, у вас есть что-то вроде этого в 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()
1 голос
/ 16 декабря 2012

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

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

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

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

Следующие сведения о :radio могут представлять интерес, а могут и не представлять интерес

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...