2011-01-06 14 views

Respuesta

258

Con la ayuda del attribute selector puede seleccionar el elemento de entrada con el valor correspondiente. Entonces usted tiene que establecer el atributo explícitamente, utilizando .attr:

var value = 5; 
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked'); 

Desde jQuery 1.6, también puede utilizar el método de .prop con un valor booleano (esto debe ser el método preferido):

$("input[name=mygroup][value=" + value + "]").prop('checked', true); 

Recuerde que primero debe quitar el atributo marcado de cualquiera de los botones de opción debajo de un grupo de botones de radio, solo entonces podrá agregar propiedades/atributos marcados a uno de los botones de opción de ese grupo de botones de opción.

código para eliminar Chequeado Atributo de todos los botones de selección de un grupo de botones de radio -

$('[name="radioSelectionName"]').removeAttr('checked'); 
+0

.prop ('verificado', cierto) es probablemente mejor o .is() – bladefist

+3

@bladefist: '.is' no ayudaría aquí, pero estoy de acuerdo con' .prop'. No estaba disponible en ese momento;) Actualizaré mi respuesta. ¡Gracias! –

+4

Si el valor del botón de opción tiene un decimal, debe poner el valor entre comillas – Robert

11

Prueba esto:

$('input:radio[name="mygroup"][value="5"]').attr('checked',true); 

JS Fiddle demo.

+0

' selected' no funciona para los botones de opción. –

+0

@Felix: no, debería haber sido 'verificado', desde que se editó. =) –

+0

@Dave no se olvide de "mygroup" – hunter

8
$("input[name='mygroup'][value='5']").attr("checked", true); 
102

Hay una mejor manera de comprobar radios y casilla de verificación; usted tiene que pasar una matriz de valores para el método de Val en lugar de un valor bruto

$("input[name=mygroup]").val([5]); 

Aquí está el doc jQuery que explica cómo funciona: http://api.jquery.com/val/#val-value

Y .val([...]) también trabaja con elementos de formulario como <input type="checkbox">, <input type="radio">, y <option> dentro de un <select>.

Las entradas y las opciones que tienen un valor que coincida con uno de los elementos de la matriz será controlada o seleccionado, mientras que los que tienen un valor que no coincide con uno de los elementos de la matriz será sin marcar o no seleccionada

violín que demuestra este trabajo: https://jsfiddle.net/92nekvp3/

1

o puede simplemente escribir atributo de valor a la misma:

$(':radio[value=<yourvalue>]').attr('checked',true); 

Esto funciona para mí.

5

Cuando se cambia el valor del atributo como se mencionó anteriormente el evento change no se activa por lo que si es necesario para algunas razones por las que puede provocar que al igual que

$('input[name=video_radio][value="' + r.data.video_radio + '"]') 
     .prop('checked', true) 
     .trigger('change'); 
0
var key = "Name_radio"; 
var val = "value_radio"; 
var rdo = $('*[name="' + key + '"]'); 
if (rdo.attr('type') == "radio") { 
$.each(rdo, function (keyT, valT){ 
    if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null)) 

    { 
    $('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true); 
    } 
    }) 
} 
+3

¿Puede explicar qué hace su código en su respuesta? Al menos una oración más o menos. Y cómo soluciona la solución. Gracias. – Alex

Cuestiones relacionadas