2010-01-31 26 views

Respuesta

129

Prueba esto:

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

Esto seleccionará todos los botones de radio con el atributo value="foobar".

+0

Gracias Lo usé como tal: jQuery.each (cookieObj, functio n (i, val) { $ (": radio [value = val]"). attr ('checked', true); }); – van

+3

@test: Pruebe esto en su lugar: 'function (i, val) {$ (": radio [value = "+ val +"] "). Attr ('checked', true); } ' – Gumbo

+0

para referencia: http: //api.jquery.com/radio-selector/ –

23

estoy usando jQuery 1.6 y esto no funcionó para mí: $(":radio[value=foobar]").attr('checked',true);

En cambio, estoy usando: $('[value="foobar"]').attr('checked',true); y funciona muy bien.

El código real que estoy usando radios despeja el primero y utiliza prop en lugar de attr

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

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

¿Es este un error que se corrigió? ¿O deberíamos poner comillas alrededor del valor? –

5

decir que tiene algo como esto en el código 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> 

entonces este tipo de cosas trabajos.

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

Un selector completo se vería así:

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

teniendo en cuenta que es probable que tenga más de un grupo de botones de radio como esta

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

El uso de un selector de ID como esto (junto ejemplo) es malo porque no debe tener múltiples elementos con la misma ID. Supongo que alguien que encuentra esta pregunta ya sabe que esto es malo.

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

El siguiente acerca de :radio puede o no ser de interés

Porque: radio es una extensión de jQuery y no forma parte de la especificación CSS , consultas utilizando: radio puede no tomar ventaja de la aumento de rendimiento proporcionado por el método DOM querySelectorAll() nativo. Para un mejor rendimiento en navegadores modernos, use [type = "radio"] en su lugar.

16

Esto se puede lograr por esto también:

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

Esto seleccionará la radio que tiene el valor de aaa


Con .filter() método:

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

esto realmente seleccionará todos los botones de radio y ** cambiará sus valores ** a 'aaa' luego devolverá' 'aaa'' – bendman

+1

@bendman Sí, solo editó la respuesta – Jai

Cuestiones relacionadas