Comprobar si la casilla de verificación está marcada con jQuery

¿Cómo puedo comprobar si una casilla de verificación en una matriz de casillas de verificación está marcada utilizando el id de la matriz de casillas de verificación?

Estoy utilizando el siguiente código, pero siempre devuelve el recuento de casillas de verificación marcadas independientemente del id.

``js function isCheckedById(id) { alert(id); var checked = $("input[@id=" + id + "]:checked").length; alert(checked);

si (checked == 0) {
    devuelve false;
} else {
    devuelve true;
}

}

$('#' + id).is(":checked")

Que obtiene si la casilla está marcada.

Para un array de casillas de verificación con el mismo nombre se puede obtener la lista de las marcadas mediante:

var $boxes = $('input[name=thename]:checked');

Luego para hacer un bucle a través de ellas y ver lo que está marcado puedes hacer

$boxes.each(function(){
    // Do stuff here with this
});

Para saber cuántas están marcadas puedes hacer:

$boxes.length;
Comentarios (11)
Solución

Los IDs deben ser únicos en su documento, lo que significa que usted no debería hacer esto:

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

En su lugar, suelte el ID, y luego selecciónelos por su nombre, o por un elemento contenedor:


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

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

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

El código anterior devuelve true si la casilla de verificación está marcada o false si no lo está.

Comentarios (4)