Como posso verificar se uma caixa de seleção em um array de caixas de seleção está marcada usando o id do array de caixas de seleção?
Eu estou usando o seguinte código, mas ele sempre retorna a contagem das caixas de seleção, independentemente da identificação.
função isCheckedById(id) {
alerta(id);
var verificado = $("input[@id=" + id + "]:verificado").length;
alert(verificado);
se (assinalado == 0) {
devolver falso;
senão...
voltar verdadeiro;
}
}
$('#' + id).is(":checked")
Isso acontece se a caixa de seleção estiver marcada.
Para um conjunto de caixas de seleção com o mesmo nome, você pode obter a lista de caixas de seleção:
var $boxes = $('input[name=thename]:checked');
Depois, para os atravessar e ver o que é verificado, pode fazer:
$boxes.each(function(){
// Do stuff here with this
});
Para descobrir quantos são verificados você pode fazer:
$boxes.length;
As identificações devem ser únicas em seu documento, o que significa que você **não deve*** fazer isso:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Em vez disso, largue a identificação e depois seleccione-os pelo nome ou por um elemento que os contenha:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
E agora o JQuery:
var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector
// or, without the container:
var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
$('#checkbox').is(':checked');
O código acima retorna verdadeiro se a caixa de seleção estiver marcada ou falso se não estiver.