Hvordan kan jeg sjekke om en avmerkingsboks i et avmerkingsboksarray er avmerket ved hjelp av id-en til avmerkingsboksarrayet?
Jeg bruker følgende kode, men den returnerer alltid antall avmerkede avmerkingsbokser uavhengig av id.
funksjon isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
$('#' + id).is(":checked")
Det blir hvis avkrysningsruten er merket av.
For en matrise av avmerkingsbokser med samme navn kan du få listen over avmerkede etter:
var $boxes = $('input[name=thename]:checked');
Deretter kan du gå gjennom dem og se hva som er krysset av:
$boxes.each(function(){
// Do stuff here with this
});
For å finne ut hvor mange som er krysset av kan du gjøre:
$boxes.length;
ID-er må være unike i dokumentet ditt, noe som betyr at du ikke bør gjøre dette:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
I stedet skal du slippe ID-en og deretter velge dem etter navn, eller etter et element som inneholder dem:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
Og nå 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');
Koden ovenfor returnerer true hvis avkrysningsruten er krysset av eller false hvis ikke.