SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
25.12.2024

jQuery: Exibindo Valores de Checkboxes em Textarea Durante Atualizações Ajax

Resposta Rápida

Para criar um array com os valores dos checkboxes marcados em jQuery, utilize o método .map() junto com o seletor :checked. Aqui está um exemplo de código:

var valoresMarcados = $('input:checkbox:checked').map((_, el) => el.value).get();

Dessa forma, você obtém o array valoresMarcados que contém os valores de todos os checkboxes marcados, que podem ser usados em várias situações.

Análise Passo a Passo

Monitorando Mudanças em Tempo Real

Quando o DOM muda devido a atualizações de conteúdo dinâmico (por exemplo, durante requisições Ajax), é importante rastrear essas mudanças. Utilize o método .on() vinculado a um pai estático, como document.

$(document).on('change', 'input:checkbox', function() {
  atualizarValores(); // Coletando os dados atuais!
});

function atualizarValores() {
  var valoresMarcados = $('input:checkbox:checked').map((_, el) => el.value).get();
  // valoresMarcados agora contém o conjunto atual de checkboxes marcados
}

Dessa forma, o status dos checkboxes é atualizado instantaneamente, de forma síncrona com as ações do usuário.

Modularidade e Reutilização de Código

Para organizar para reutilização, defina uma função que retorna o array de checkboxes marcados com base em um seletor especificado. Isso se tornará uma ferramenta valiosa em seu arsenal!

function obterCheckboxesMarcados(seletor) {
  return $(seletor).map(function() {
    return this.checked ? this.value : null;
  }).get();
}

// Exemplo de uso
var valoresMarcados = obterCheckboxesMarcados('input.sua-classe:checkbox');

Essa abordagem melhora significativamente a qualidade do código, modularidade e reutilização.

Visualização

Imagine que cada checkbox é uma maçã em uma árvore:

🌳 [ ] 🍏 'Maçã 1'  
🌳 [ ] 🍏 'Maçã 2'
🌳 [x] 🍏 'Maçã 3'
🌳 [ ] 🍏 'Maçã 4'
🌳 [x] 🍏 'Maçã 5'

Com jQuery, selecionamos as maçãs maduras:

$('input[type="checkbox"]:checked').map(function() {
    return this.value;  
}).get();

Como resultado, obtemos o array de maçãs coletadas:

Coletadas: ['Maçã 3', 'Maçã 5']

Nós pegamos apenas as maçãs marcadas da árvore.

Manipulação Eficiente de Eventos

Para otimizar a manipulação de eventos dos checkboxes, use delegação de eventos:

$('#form-id').on('click', 'input:checkbox', function() {
  // Responder à mudança de estado do checkbox
});

A delegação de eventos funciona muito bem com checkboxes adicionados ao formulário de forma dinâmica. A delegação é a escolha dos profissionais!

Exibindo em Textarea

Quer exibir os valores selecionados em um textarea? Podemos atualizar seu conteúdo em tempo real:

$('input:checkbox').on('change', function() {
  var valoresMarcados = $('input:checkbox:checked').map((_, el) => el.value).get().join(', ');
  $('#output-textarea').val(valoresMarcados); // Atualização instantânea
});

Você pode observar o campo textarea atualizando instantaneamente quando as seleções de checkbox mudam. Isso garante uma interação de alta qualidade com o usuário.

Considerações para Consultas SQL

Se você está usando os valores dos checkboxes para criar consultas SQL, certifique-se de prevenir injeções SQL. Sempre sanitize os dados antes de enviá-los ao servidor, onde devem ser processados de forma segura.

Recursos Úteis

  1. .val() | Documentação da API jQuery — como usar jQuery para obter os valores dos checkboxes.
  2. .each() | Documentação da API jQuery — guia para iterar sobre cada elemento em uma coleção jQuery, incluindo checkboxes.
  3. javascript - Como saber se um radiobutton está selecionado usando jQuery? - Stack Overflow — discussão no Stack Overflow sobre análise de seleções de checkboxes.
  4. Selectores | Documentação da API jQuery — referência para a criação de seletores para checkboxes em jQuery.
  5. jQuery Obter Conteúdo e Atributos — guia do W3Schools sobre como extrair valores de elementos de formulário, incluindo checkboxes.
  6. Propriedades e Métodos de Formulários — uma breve introdução ao tratamento de elementos de formulário usando JavaScript, incluindo checkboxes e botões de opção.
  7. <input type="checkbox"> - HTML: Linguagem de Marcação Hipertexto | MDN — exploração detalhada do elemento <input type="checkbox"> da MDN Web Docs.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!