JQuery - znajdź przycisk opcji według wartości


Odpowiedzi:


142

Spróbuj tego:

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

Spowoduje to zaznaczenie wszystkich przycisków opcji z atrybutem value="foobar".


Dzięki użyłem go jako takiego: jQuery.each (cookieObj, function (i, val) {$ (": radio [wartość = wart]"). Attr ('sprawdzone', prawda);});
van

3
@test: Spróbuj tego zamiast:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo

1
@Gumbo, jeśli nadamy tej funkcji nazwę, czy możemy ją tak nazwać ?: $CheckRadioValues ​​= findChecked ("value");
Ben Sewards,

25

Używam jQuery 1.6 i to nie zadziałało: $(":radio[value=foobar]").attr('checked',true);

Zamiast tego używam: $('[value="foobar"]').attr('checked',true); i działa świetnie.

Rzeczywisty kod, którego używam, najpierw czyści radio i używa propzamiastattr

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

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

czy to błąd, który został naprawiony? czy powinniśmy nadal umieszczać wartości w cudzysłowie?
Simon_Weaver,

19

Można to również osiągnąć w ten sposób:

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

Spowoduje to wybranie radia, które ma wartość aaa


Z .filter()metodą:

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

1
to rzeczywiście wybrać wszystkie przyciski radiowe i zmieniać ich wartości , aby aaanastępnie zawróci'aaa'
bendman

5

powiedz, że masz coś takiego w 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>

wtedy to działa.

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

2

Pełen selektor wyglądałby tak:

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

biorąc pod uwagę, że prawdopodobnie masz więcej niż jedną taką grupę przycisków opcji

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

Używanie takiego selektora identyfikatora (następny przykład) jest złe, ponieważ nie powinno się mieć wielu elementów o tym samym identyfikatorze. Zakładam, że ktoś, kto znalazł to pytanie, już wie, że jest źle.

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

Poniższe informacje :radiomogą być interesujące lub nie

Ponieważ: radio jest rozszerzeniem jQuery i nie jest częścią specyfikacji CSS, zapytania używające: radio nie mogą korzystać ze zwiększenia wydajności zapewnianego przez natywną metodę DOM querySelectorAll (). Aby uzyskać lepszą wydajność w nowoczesnych przeglądarkach, użyj zamiast tego [type = "radio"].

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.