2010-01-31 5 views

Odpowiedz

129

Spróbuj tego:

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

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

+0

Dzięki Użyłem go jako takiego: jQuery.each (cookieObj, functio n (i, val) { $ (": radio [value = val]"). attr ("sprawdzone", prawda); }); – van

+3

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

+0

w celach informacyjnych: http: //api.jquery.com/radio-selector/ –

23

używam jQuery 1.6 i to nie działa dla mnie: $(":radio[value=foobar]").attr('checked',true);

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

Rzeczywisty kod używam czyści radio pierwszy i wykorzystuje prop zamiast attr

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

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

Czy to błąd, który został naprawiony? czy powinniśmy nadal umieszczać cytaty wokół wartości? –

5

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

to ten rodzaj rzeczy Prace.

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

pełny selektor będzie wyglądać następująco:

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

zważywszy, że prawdopodobnie masz więcej niż jedna grupa przycisku radiowego jak ten

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

Korzystanie z selektora identyfikatora takiego (następna przykład) jest zły, ponieważ nie powinieneś mieć wielu elementów o tym samym ID. Zakładam, że ktoś znajdujący to pytanie już wie, że to źle.

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

Poniższy o :radio mogą lub nie mogą być przedmiotem zainteresowania

Ponieważ: radio jest rozszerzenie jQuery i nie jest częścią specyfikacji CSS , kwerendy przy użyciu: Radio może nie skorzystać z Zwiększenie wydajności zapewniane przez natywną metodę DOM querySelectorAll() . Aby uzyskać lepszą wydajność w nowoczesnych przeglądarkach, użyj zamiast tego [type = "radio"] .

16

ten można osiągnąć przez to zbyt:

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

ten wyłoni radio, które ma wartość aaa


Z .filter() metody:

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

to tak naprawdę zaznaczy wszystkie przyciski opcji i ** zmieni ich wartości ** na "aaa", a następnie zwróci ''aaa'' – bendman

+1

@ bendman Tak, dobrze, właśnie edytował odpowiedź – Jai