Tarkista, onko valintaruutu valittuna jQueryn avulla

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;
Kommentit (11)
Ratkaisu

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:


    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />

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;
Kommentit (5)
$('#checkbox').is(':checked'); 

Yllä oleva koodi palauttaa true, jos valintaruutu on valittuna, ja false, jos ei.

Kommentit (4)