Estoy tratando de configurar un botón de radio. Quiero configurarlo usando el valor o la identificación.
Esto es lo que he intentado.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
es la identificación del botón de radio.
Tal vez una pequeña edición está en orden.
Hay dos conjuntos de cajas de radio, una con columnas y la otra con filas. Entonces veo el punto de no usar id's. Culpa mía. Entonces tengo como ejemplo:
<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>
y
<input type="radio" name="cols" class="listOfCols"
style="width: 50%; " value="Site"></input>
con la identificación eliminada, y necesito configurar la correcta.
jquery
radio-button
mike628
fuente
fuente
Respuestas:
Su selector busca el descendiente de un
input:radio[name=cols]
elemento que tiene la identificación denewcol
(bueno, el valor de esa variable).Intente esto en su lugar (ya que está seleccionando por ID de todos modos):
Aquí hay una demostración: http://jsfiddle.net/jasper/n8CdM/1/
Además, a partir de jQuery 1.6, el método preferido para alterar una propiedad es
.prop()
: http://api.jquery.com/propfuente
prop
vsattr
.attr
en desuso por propiedades y ya no funciona en jQuery 2.0))Encontré la respuesta aquí:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Básicamente, si desea marcar un botón de radio, DEBE pasar el valor como una matriz:
fuente
En su selector, parece que está intentando obtener algún elemento anidado de su botón de opción con una identificación determinada. Si desea marcar un botón de radio, debe seleccionar este botón de radio en el selector y no otra cosa:
Esto supone que tiene el siguiente botón de opción en su marcado:
Si su botón de radio tenía una identificación:
puedes usar directamente un selector de id:
fuente
cols
nombre$('input:radio[name="cols"]').attr('checked', 'checked');
, seleccionará solo la última. Ejecutará el código en cada uno, pero cada vez que establezca lachecked
propiedad, el elemento previamente establecido se desarmará. Aquí hay una demostración: jsfiddle.net/jasper/n8CdM/2Puedes probar el siguiente código:
Esto establecerá el atributo marcado para las columnas de radio y el valor como se especifica.
fuente
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Fuente: api.jquery.com/attr¿Por qué lo necesitas
'input:radio[name=cols]'
? No conoce su html, pero suponiendo que los identificadores sean únicos, simplemente puede hacer esto.fuente
Prueba esto:
He tenido problemas con
attr("checked", true)
, así que tiendo a usar lo anterior en su lugar.Además, si tiene la identificación, entonces no necesita esas otras cosas para la selección. Una identificación es única.
fuente
checked="checked"
atributo y el navegador lo mostrará como verificado, luego seleccione B y sucederá lo mismo. Ahora, cuando vuelva a seleccionar A, ya tendrá unchecked="checked"
atributo y nada cambiará. Como efecto secundario de ese B todavía se seleccionará, no A.Dado que
newcol
es la ID del botón de radio, simplemente puede usarlo como se muestra a continuación.fuente
El uso
.filter()
también funciona y es flexible para id, value, name:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(visto en este blog )
fuente
Combinando respuestas anteriores:
fuente
Simplemente puede usar:
fuente
La respuesta elegida funciona en este caso.
Pero la pregunta era sobre encontrar el elemento basado en el grupo de radio y la identificación dinámica, y la respuesta también puede dejar el botón de radio que se muestra no afectado.
Esta línea selecciona exactamente lo que se solicitó al tiempo que muestra el cambio en la pantalla también.
fuente