Miten voin tarkistaa, onko valintaruutumassan valintaruutu valittuna käyttämällä valintaruutumassan id:tä?
Käytän seuraavaa koodia, mutta se palauttaa aina valittujen valintaruutujen lukumäärän id:stä riippumatta.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
$('#' + id).is(":checked")
Se saa, jos valintaruutu on valittuna.
Jos kyseessä on joukko samannimisiä valintaruutuja, voit saada listan valittujen valintaruutujen luettelosta seuraavasti:
var $boxes = $('input[name=thename]:checked');
Sitten voit käydä niiden läpi silmukalla ja katsoa, mikä on valittuna:
$boxes.each(function(){
// Do stuff here with this
});
Jos haluat selvittää, kuinka monta on tarkistettu, voit tehdä näin:
$boxes.length;
Tunnusten on oltava yksilöllisiä asiakirjassasi, mikä tarkoittaa, että tätä ei pidä tehdä:
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Sen sijaan pudota ID ja valitse ne sitten nimen tai sisältävän elementin perusteella:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
Ja nyt 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');
Yllä oleva koodi palauttaa true, jos valintaruutu on valittuna, ja false, jos ei.