O elemento checkbox é um componente fundamental em formulários web, permitindo que usuários selecionem uma ou mais opções em uma lista. Ao trabalhar com jQuery, a tarefa de capturar esses estados e valores torna-se extremamente simples e eficiente. Este guia explora as principais abordagens para manipular esses elementos.
Configuração Inicial
Para utilizar as funcionalidades descritas, certifique-se de que a biblioteca jQuery está carregada em seu projeto através de um CDN ou arquivo local:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
Capturando o valor de um único Checkbox
Para interagir com um checkbox específico, geralmente utilizamos seu ID ou uma classe única. O exemplo abaixo demonstra como detectar quando o estado de um checkbox muda e como recuperar seu valor caso ele esteja marcado.
<input type="checkbox" id="aceito-termos" value="concordou"> Eu aceito os termos
<p id="status-msg"></p>
<script>
$(document).ready(function() {
$('#aceito-termos').on('change', function() {
if ($(this).is(':checked')) {
const valorAtivo = $(this).val();
$('#status-msg').text('O usuário: ' + valorAtivo);
} else {
$('#status-msg').text('Seleção removida.');
}
});
});
</script>
Obtendo múltiplos valores de um grupo
Em cenários onde múltiplos itens podem ser selecionados simultaneamente, utilizamos seletores de classe ou o atributo name. A técnica mais limpa para converter essas seleções em uma lista de dados é combinar o seletor :checked com o método map() do jQuery.
<div>
<label><input type="checkbox" class="stack-tecnologica" value="Node.js"> Node.js</label>
<label><input type="checkbox" class="stack-tecnologica" value="Python"> Python</label>
<label><input type="checkbox" class="stack-tecnologica" value="Go"> Go</label>
</div>
<button id="btn-processar">Confirmar Seleção</button>
<script>
$(document).ready(function() {
$('#btn-processar').click(function() {
// Mapeia todos os elementos checados para um array
const stacksSelecionadas = $('.stack-tecnologica:checked').map(function() {
return $(this).val();
}).get();
console.log('Stacks escolhidas:', stacksSelecionadas);
alert('Você selecionou: ' + stacksSelecionadas.join(', '));
});
});
</script>
Fluxo de Execução
O diagrama abaixo ilustra o fluxo lógico para recuperação de dados de múltiplos elementos de seleção:
graph TD
A[Evento de Clique/Mudança] --> B{Filtrar elementos}
B --> C[Selecionar apenas :checked]
C --> D[Iterar com map/each]
D --> E[Extrair .val]
E --> F[Armazenar em Array/Objeto]
Estrutura de Métodos Relacionados
Abaixo, uma representação conceitual das ferramentas utilizadas no procesos:
classDiagram
class ElementoDOM {
+checked: boolean
+value: string
}
class JQueryWrapper {
+is(":checked")
+val()
+map()
+each()
+prop("checked")
}
class Processamento {
+get()
+join()
}
JQueryWrapper --> ElementoDOM : manipula
JQueryWrapper --> Processamento : formata dados