Come posso controllare se una casella di controllo in un array di checkbox è controllata usando l'id dell'array di checkbox?
Sto usando il seguente codice, ma restituisce sempre il conteggio delle caselle di controllo controllate indipendentemente dall'id.
funzione isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
se (checked == 0) {
ritorna false;
} else {
ritorna true;
}
}
$('#' + id).is(":checked")
Che ottiene se la casella di controllo è selezionata.
Per un array di caselle di controllo con lo stesso nome si può ottenere la lista di quelle controllate da:
var $boxes = $('input[name=thename]:checked');
Poi, per fare un ciclo e vedere cosa è spuntato, si può fare:
$boxes.each(function(){
// Do stuff here with this
});
Per trovare quanti sono controllati si può fare:
$boxes.length;
Gli ID devono essere unici nel tuo documento, il che significa che non dovresti farlo:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Invece, lasciate cadere l'ID, e poi selezionateli per nome, o per un elemento contenente:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
E ora il 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');
Il codice di cui sopra restituisce true se la checkbox è selezionata o false se non lo è.