Por algum motivo, não consigo descobrir isso.
Tenho alguns botões de opção em meu html que alternam entre categorias:
<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
O usuário pode selecionar o que quiser, mas quando um determinado evento for acionado, quero definir 1234
como botão de opção marcado como definido, porque esse é o botão de opção padrão marcado.
Eu tentei versões disso (com e sem jQuery):
document.getElementById('#_1234').checked = true;
Mas não parece se atualizar. Preciso atualizar visivelmente para que o usuário possa ver. Alguém pode ajudar?
EDIT: Estou apenas cansado e esquecido o #
, obrigado por apontar, aquele e $.prop()
.
document.getElementById('_1234').checked = true;
#
Respostas:
Não misture sintaxe CSS / JQuery (
#
para identificador) com JS nativo.Solução JS nativa:
document.getElementById("_1234").checked = true;
Solução JQuery:
$("#_1234").prop("checked", true);
fonte
querySelector
, imagino..attr("checked", "checked")
querySelector
não foi lançado em navegadores até 2009 e não estava sendo amplamente usado por desenvolvedores até algum tempo depois disso. Nunca usei tanto o jQuery, mas teve um impacto significativo na evolução do JS.Se você deseja definir o botão "1234", você precisa usar seu "id":
Ao usar a API do navegador ("getElementById"), você não usa a sintaxe do seletor; você apenas passa o valor "id" real que está procurando. Você usa a sintaxe do seletor com jQuery ou
.querySelector()
e.querySelectorAll()
.fonte
Hoje, no ano de 2016, está salvo para usar
document.querySelector
sem saber o ID (principalmente se você tiver mais de 2 botões de opção):fonte
A maneira mais fácil provavelmente seria com jQuery, da seguinte maneira:
Isso adiciona um novo atributo "verificado" (que em HTML não precisa de um valor). Lembre-se de incluir a biblioteca jQuery:
fonte
$("#_1234").prop("checked", true)
Ao usar a
document.getElementById()
função, você não precisa passar#
antes do id do elemento.Código:
Demo: JSFiddle
fonte
Consegui selecionar (marcar) um botão de entrada de rádio usando este código Javascript no Firefox 72, dentro de uma página de opção de extensão da web para CARREGAR o valor:
Onde o código associado para SALVAR o valor era:
Dado HTML como o seguinte:
fonte