Ako môžem skontrolovať, či je začiarkavacie políčko v poli začiarkavacích políčok začiarknuté pomocou id poľa začiarkavacích políčok?
Používam nasledujúci kód, ale ten vždy vráti počet začiarknutých políčok bez ohľadu na id.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
vrátiť true;
}
}
$('#' + id).is(":checked")
To sa získa, ak je začiarkavacie políčko začiarknuté.
Pre pole zaškrtávacích políčok s rovnakým názvom môžete získať zoznam zaškrtnutých políčok pomocou:
var $boxes = $('input[name=thename]:checked');
Potom na ich prechádzanie v slučke a zisťovanie, čo je začiarknuté, môžete urobiť:
$boxes.each(function(){
// Do stuff here with this
});
Ak chcete zistiť, koľko z nich je zaškrtnutých, môžete urobiť:
$boxes.length;
ID musia byť vo vašom dokumente jedinečné, čo znamená, že by ste to nemali robiť:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Namiesto toho vypustite ID a potom ich vyberte podľa názvu alebo podľa obsahujúceho prvku:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
A teraz 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');
Uvedený kód vráti true, ak je políčko zaškrtnuté, alebo false, ak nie je.