Kaip patikrinti, ar žymimasis langelis, esantis žymimųjų langelių masyve, yra pažymėtas, naudojant žymimųjų langelių masyvo id?
Naudoju toliau pateiktą kodą, bet jis visada grąžina pažymėtų žymimųjų langelių skaičių, neatsižvelgiant į id.
funkcija isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
grąžinti true;
}
}
```
$('#' + id).is(":checked")
Tai gaunama, jei pažymėtas žymimasis langelis.
To paties pavadinimo žymimųjų langelių masyvui pažymėtųjų sąrašą galite gauti taip:
var $boxes = $('input[name=thename]:checked');
Tada, norėdami per juos pereiti ir pamatyti, kas yra pažymėta, galite padaryti:
$boxes.each(function(){
// Do stuff here with this
});
Norėdami sužinoti, kiek jų yra pažymėta, galite atlikti:
$boxes.length;
ID turi būti unikalūs jūsų dokumente, o tai reiškia, kad neturėtumėte to daryti:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Vietoj to išmeskite ID, o tada pasirinkite juos pagal pavadinimą arba pagal esantį elementą:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
O dabar 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');
Aukščiau pateiktas kodas grąžina true, jei žymimasis langelis pažymėtas, arba false, jei nepažymėtas.