Quero obter uma lista de nomes de caixas de seleção selecionadas em uma div com determinado ID. Como eu faria isso usando jQuery?
Por exemplo, para esta div, quero obter o array ["c_n_0"; "c_n_3"] ou uma sequência "c_n_0; c_n_3"
<div id="checkboxes">
<input id="chkbx_0" type="checkbox" name="c_n_0" checked="checked" />Option 1
<input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2
<input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3
<input id="chkbx_3" type="checkbox" name="c_n_3" checked="checked" />Option 4
</div>
jquery
checkbox
jquery-selectors
Juozas Kontvainis
fonte
fonte
var selected = new Array();
. Melhor (mais barato) comvar selected = [];
change
funcionar?Isso faria?
fonte
.attr('checked')
ou.prop('checked')
ou.is(':checked')
não funcionar, tente.get(0).checked
lhe dará uma matriz dos próprios elementos. Se você apenas precisar especificamente dos nomes:
fonte
$("#checkboxes :checked").map(...)
seria mais conciso. Como Jansen aponta, deveria ser$(this).attr("name")
; mas consideraria um simplesthis.name
que deveria ser igualmente compatível.children
parafind
olhar mais profundo, e precisava jquery atributos tão acostumado$(this)
(e escreveu este comentário para quando eu vêm à procura de novo ...)Eu precisava da contagem de todas as caixas de verificação marcadas. Em vez de escrever um loop, eu fiz isso
Compare-o com o número total de caixas de seleção para ver se são iguais. Espero que ajude alguém
fonte
Isso funciona para mim.
fonte
Você também pode atribuir a todos o mesmo nome para que sejam uma matriz , mas atribuir valores diferentes :
Você pode obter apenas o valor dos marcados usando o mapa :
fonte
fonte
fonte