page - jquery prop
jQuery establece el botón de opción (10)
Estoy tratando de establecer 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 newcol
.
Quizás una pequeña edición esté en orden.
Hay dos juegos de cajas de radio, uno con cols y el otro con filas. Entonces veo el punto de no usar los identificadores. Mi error. Entonces tengo un 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 establecer la correcta.
¿Por qué necesita ''input:radio[name=cols]''
. No conozca su html, pero suponiendo que los ID sean únicos, simplemente puede hacerlo.
$(''#''+newcol).prop(''checked'', true);
Como newcol
es la ID del botón de newcol
, simplemente puede usarlo como se newcol
continuación.
$("#"+newcol).attr(''checked'',true);
En el selector, parece que intenta obtener algún elemento anidado de su botón de opción con un ID determinado. Si desea verificar un botón de opción, debe seleccionar este botón de opción en el selector y no en otra cosa:
$(''input:radio[name="cols"]'').attr(''checked'', ''checked'');
Esto supone que tiene el siguiente botón de radio en su marcado:
<input type="radio" name="cols" value="1" />
Si tu botón de radio tenía una identificación:
<input type="radio" name="cols" value="1" id="myradio" />
puede usar directamente un selector de id.
$(''#myradio'').attr(''checked'', ''checked'');
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 opción, DEBE pasar el valor como una matriz:
$(''input:radio[name=cols]'').val([''Site'']);
$(''input:radio[name=rows]'').val([''Site'']);
La respuesta elegida funciona en este caso.
Pero la pregunta era sobre encontrar el elemento basado en el radiogrupo y la identificación dinámica, y la respuesta también puede dejar el botón de opción que se muestra no afectado.
Esta línea selecciona exactamente lo que se solicitó al mostrar el cambio en la pantalla también.
$(''input:radio[name=cols][id=''+ newcol +'']'').click();
Prueba esto:
$("#" + newcol).attr("checked", "checked");
He tenido problemas con attr("checked", true)
, por lo que tiendo a usar el anterior en su lugar.
Además, si tiene la identificación, entonces no necesita esa otra cosa para la selección. Una identificación es única.
Puedes probar el siguiente código:
$("input[name=cols][value=" + value + "]").attr(''checked'', ''checked'');
Esto establecerá el atributo comprobado para las columnas de radio y el valor como se especifica.
Puedes simplemente usar:
$("input[name=''cols'']").click();
Su selector busca el descendiente de un elemento input:radio[name=cols]
que tiene el id de newcol
(bien el valor de esa variable).
Pruebe esto en su lugar (ya que está seleccionando por ID de todos modos):
$(''#'' + newcol).prop(''checked'',true);
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/prop
Usar .filter()
también funciona, y es flexible para id, value, name:
$(''input[name="cols"]'').filter("[value=''Site'']").attr(''checked'', true);
(visto en este blog )