Por alguna razón, parece que no puedo resolver esto.
Tengo algunos botones de radio en mi html que alternan categorías:
<input type="radio" name="main-categories" id="_1234" value="1234" /> // All
<input type="radio" name="main-categories" id="_2345" value="2345" /> // Certain category
<input type="radio" name="main-categories" id="_3456" value="3456" /> // Certain category
<input type="radio" name="main-categories" id="_4567" value="4567" /> // Certain category
El usuario puede seleccionar lo que quiera, pero cuando se activa un evento determinado, quiero configurar el 1234
botón de opción marcado como marcado, porque este es el botón de opción marcado por defecto.
He probado versiones de esto (con y sin jQuery):
document.getElementById('#_1234').checked = true;
Pero no parece actualizarse. Necesito que se actualice visiblemente para que el usuario pueda verlo. ¿Alguien puede ayudar?
EDITAR: Estoy cansado y pasé por alto #
, gracias por señalarlo, eso y $.prop()
.
document.getElementById('_1234').checked = true;
#
Respuestas:
No mezcle la sintaxis CSS / JQuery (
#
para el identificador) con JS nativo.Solución JS nativa:
document.getElementById("_1234").checked = true;
Solución JQuery:
$("#_1234").prop("checked", true);
fuente
querySelector
me imagino..attr("checked", "checked")
querySelector
no se envió a los navegadores hasta 2009 y los desarrolladores no lo utilizaron ampliamente hasta algún tiempo después. Nunca he usado tanto jQuery, pero tuvo un impacto significativo en la evolución de JS.Si desea configurar el botón "1234", debe usar su "id":
Cuando utiliza la API del navegador ("getElementById"), no utiliza la sintaxis del selector; simplemente pasa el valor real de "id" que está buscando. Utiliza la sintaxis del selector con jQuery o
.querySelector()
y.querySelectorAll()
.fuente
Hoy, en el año 2016, se puede usar
document.querySelector
sin conocer la identificación (especialmente si tiene más de 2 botones de opción):fuente
La forma más fácil probablemente sería con jQuery, de la siguiente manera:
Esto agrega un nuevo atributo "verificado" (que en HTML no necesita un valor). Solo recuerde incluir la biblioteca jQuery:
fuente
$("#_1234").prop("checked", true)
Al usar la
document.getElementById()
función, no tiene que pasar#
antes de la identificación del elemento.Código:
Demostración: JSFiddle
fuente
Pude seleccionar (marcar) un botón de entrada de radio usando este código Javascript en Firefox 72, dentro de una página de opciones de Extensión Web para CARGAR el valor:
Donde el código asociado para GUARDAR el valor fue:
Dado HTML como el siguiente:
fuente