Compruebe si la casilla de verificación está marcada con jQuery
¿Cómo puedo verificar si una casilla de verificación en una matriz de casillas de verificación está marcada usando la identificación de la matriz de casillas de verificación?
Estoy usando el siguiente código, pero siempre devuelve el recuento de casillas marcadas independientemente de la identificación.
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")
Eso se consigue si la casilla de verificación está marcada.
Para una serie de casillas de verificación con el mismo nombre, puede obtener la lista de las marcadas de la siguiente manera:
var $boxes = $('input[name=thename]:checked');
Luego, para recorrerlos y ver qué está marcado, puede hacer:
$boxes.each(function(){
// Do stuff here with this
});
Para saber cuántos están marcados puedes hacer:
$boxes.length;
Las identificaciones deben ser únicas en su documento, lo que significa que no debe 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 nombre o por un elemento contenedor:
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
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;
$('#checkbox').is(':checked');
El código anterior devuelve verdadero si la casilla de verificación está marcada o falso en caso contrario.