Frequentemente precisamos conferir se um checkbox está marcado ou não para tomar decisões com o JavaScript e jQuery.
No entanto, verificar o atributo checked não é um caminho que vá funcionar aqui. Como essa é uma dúvida muito frequênte e foi um algo de pesquisa minha algumas vezes, resolvi destrinchar aqui como você pode verificar se um checkbox está marcado ou selecionado utilizando JavaScript e jQuery.
Várias maneiras de verificar o checkbox
Como tudo na programação, temos inúmeras maneiras de verificar se o checkbox está marcado. Por isso vou dar alguns exemplos abaixo.
O HTML:
<input type="checkbox" id="estaSelecionado"/>
<div id="confirmacao" style="display:none">O checkbox está selecionado</div>No HTML temos um <input> to tipo checkbox e com uma ID. Abaixo adicionei uma <div> com um CSS que o esconde e uma ID também.
O objetivo aqui é fazer esse <div> aparecer quando eu selecionar o checkbox.
Estou presumindo que você já possui o jQuery carregado no seu documento.
O JavaScript:
Algo bacana do elemento do DOM checkbox é que ele vai te dar o estado checked do elemento quando houver uma ação nele. Isto é, ele vai te informar quando o checkbox for marcado.
Uma forma simples de executarmos essa ação é utilizando a propriedade toggle do jQuery juntamente com o estado checked.
$('#estaSelecionado').click(function() {
$("#confirmacao").toggle(this.checked);
});Nesse código estamos aproveitando o seletor de ID do jQuery e “ouvindo” pela ação de click no checkbox.
Quando o usuário clica para marcá-lo, chamamos a propriedade toggle do jQuery e a condicionamos pelo estado de checked do próprio elemento clicado.
O toggle no jQuery identifica que o elemento está escondido e o faz aparecer. E ao remover a seleção do checkbox o clicando novamente ele vai executar a ação contrária e o fazer esconder.
Essa é uma maneira bem resumida de fazer, no entando podemos também destrinchar e aumentar nosso código para ficar mais claro da seguinte forma:
if($("#estaSelecionado").is(':checked')){
$("#confirmacao").show();
} else {
$("#confirmacao").hide();
}Nesse código estamos aproveitando da função is() do jQuery para compreender o estado do checkbox. Essa função retorna verdadeiro ou falso e nos dá a possibilidade de a usar numa condicional if.
A ação de esconder e aparecer, por sua vez, é bem padrão utilizando as funções show() e hide() do jQuery.
Conclusão
Reforço que existem essas e outras maneiras para determinar se um checkbox está marcado ou selecionado utilizando JavaScript e jQuery. Esses exemplos acima funcionam muito bem para várias situações e espero que você possa ter sucesso com seu projeto os utilizando.
Divirta-se!