Jak użyć JQuery, aby znaleźć przycisk opcji według jego wartości?
Odpowiedzi:
Spróbuj tego:
$(":radio[value=foobar]")
Spowoduje to zaznaczenie wszystkich przycisków opcji z atrybutem value="foobar"
.
function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
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 prop
zamiastattr
$('[name=menuRadio]').prop('checked',false);
$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
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();
aaa
następnie zawróci'aaa'
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()
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 :radio
mogą 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"].