Então, eu tenho essas caixas de seleção:
<input type="checkbox" name="type" value="4" />
<input type="checkbox" name="type" value="3" />
<input type="checkbox" name="type" value="1" />
<input type="checkbox" name="type" value="5" />
E assim por diante. Existem cerca de 6 deles e são codificados manualmente (ou seja, não são buscados em um banco de dados), portanto eles provavelmente permanecerão os mesmos por um tempo.
Minha pergunta é como posso obtê-los todos em uma matriz (em javascript), para que eu possa usá-los ao fazer uma $.post
solicitação AJAX usando Jquery.
Alguma ideia?
Editar: eu gostaria apenas que as caixas de seleção selecionadas fossem adicionadas à matriz
javascript
jquery
ajax
dhtml
Click Voto a favor
fonte
fonte
Respostas:
Formatado:
Espero que funcione.
fonte
yourArray = []
map
vez deeach
:var yourArray = $("input:checkbox[name=type]:checked").map(function(){return $(this).val()}).get()
function get_selected_checkboxes_array(){ var ch_list=Array(); $("input:checkbox[type=checkbox]:checked").each(function(){ch_list.push($(this).val());}); return ch_list; }
fonte
JS puro
Para quem não quer usar o jQuery
fonte
Eu não testei, mas deve funcionar
fonte
Isso deve fazer o truque:
Não acho que você tenha outros elementos que possam ser verificados, mas, se o fizer, terá que torná-lo mais específico:
fonte
No MooTools 1.3 (o mais tardar no momento da escrita):
fonte
Se você deseja usar um JS vanilla, você pode fazê-lo da mesma forma que um @ zahid-ullah, mas evitando um loop:
O mesmo código no ES6 parece muito melhor:
Mostrar snippet de código
fonte
Em Javascript, seria assim (Link Demo) :
fonte
Versão ES6:
Mostrar snippet de código
fonte
JavaScript puro, sem necessidade de variáveis temporárias:
fonte
fonte
Ao marcar, adicione o valor para a caixa de seleção e ao descriptografar, subtraia o valor
fonte
Outra maneira de fazer isso com o vanilla JS nos navegadores modernos (sem suporte ao IE e, infelizmente, sem suporte ao iOS Safari no momento da redação) é com o FormData.getAll () :
fonte
Usando Jquery
Você só precisa adicionar classe a cada entrada, eu adiciono classe "source", você pode alterá-lo, é claro
fonte
Usa isto:
fonte
Use commented if block para evitar adicionar valores que já estão na matriz se você usar o botão clicar ou algo para executar a inserção
fonte
Você pode tentar algo como isto:
Aqui
fonte
Aqui está o meu código para o mesmo problema que alguém também pode tentar. jquery
fonte
fonte
fonte