2010-01-31 12 views

Antwort

129

Versuchen Sie folgendes:

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

Dadurch werden alle Radiobuttons mit dem Attribut value="foobar" wählen.

+0

Dank Ich habe es als solches verwendet: jQuery.each (cookieObj, functio n (i, val) { $ (": radio [wert = wert]"). attr ('geprüft', wahr); }); – van

+3

@test: Versuchen Sie stattdessen: 'function (i, val) {$ (": radio [wert = "+ wert +"] "). Attr ('checked', true); } ' – Gumbo

+0

als Referenz: http: //api.jquery.com/radio-selector/ –

23

Ich bin mit jQuery 1.6 und dies nicht für mich arbeiten: $(":radio[value=foobar]").attr('checked',true);

Stattdessen verwende ich: $('[value="foobar"]').attr('checked',true); und es funktioniert super.

Der eigentliche Code Ich verwende löscht die Radios erste und verwendet prop statt attr

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

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

ist dies ein Fehler, der behoben wurde? Oder sollten wir den Wert noch in Anführungszeichen setzen? –

5

sagen, Sie haben so etwas wie dies in der 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> 

dann diese Art der Sache funktioniert.

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

Eine vollständige Selektor würde wie folgt aussehen:

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

gegeben, dass Sie wahrscheinlich wie dieses

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

Mit Hilfe eines ID-Selektor wie diese haben (neben mehr als eine Auswahlknopfgruppe Beispiel) ist schlecht, weil Sie nicht mehrere Elemente mit derselben ID haben sollten. Ich nehme an, dass jemand, der diese Frage findet, bereits weiß, dass das schlecht ist.

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

Die folgende über :radio können oder nicht

von Interesse sein, weil: Radio eine jQuery-Erweiterung und nicht Teil der CSS Spezifikation ist, Abfragen mit: Radio nicht nutzt die nehmen Leistungssteigerung durch die native DOM-Methode querySelectorAll() . Für eine bessere Leistung in modernen Browsern verwenden Sie stattdessen [type = "radio"] .

16

Dies kann durch diese auch erreicht werden:

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

das Radio Dies wird wählen, die den Wert von aaa


Mit .filter() Methode hat:

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

Dies wird tatsächlich alle Radio-Tasten auswählen und ** ändern Sie ihre Werte ** zu 'aaa' dann geben Sie die' 'aaa'' – bendman

+1

@ bendman Ja richtig, nur die Antwort bearbeitet – Jai

Verwandte Themen