Como obter valores de checkboxes usando jQuery

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

Tags: jQuery javascript dom-manipulation frontend forms

Publicado em 7-24 17:55