¿Cómo puedo verificar si una casilla de verificación en una matriz de casilla de verificación está marcada usando la identificación de la matriz de casilla 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;
}
}
javascript
jquery
html
checkbox
Jake
fuente
fuente
id
s sean únicos!name
puede (y debería, en este caso) repetir, ¡pero encontrará muchas cosas extrañas si duplica elid
! = DRespuestas:
Las ID deben ser únicas en su documento, lo que significa que no debe hacer esto:
En su lugar, suelte la ID y luego selecciónelas por nombre o por un elemento contenedor:
Y ahora el jQuery:
fuente
$('#checkArray :checkbox:checked').length > 0;
cuando el más simple$('#checkArray').checked
funciona y está disponible en más versiones?var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Eso se obtiene si la casilla de verificación está marcada.
Para una variedad de casillas de verificación con el mismo nombre, puede obtener la lista de las marcadas:
Luego, para recorrerlos y ver qué está marcado, puede hacer:
Para saber cuántos están marcados, puede hacer:
fuente
$('#'+id).attr('checked')
, que es equivalente$('#' + id).is(":checked")
pero más fácil de recordar IMO..attr('checked')
. Su comportamiento cambió en jQuery 1.6. Solía volverfalse
otrue
. Ahora vuelveundefined
o"checked"
..is(':checked')
No tiene este problema.$('.ClassName').is(':checked')
no funciona pero$('#' + id).is(":checked")
sí? aparte del hecho de que uno busca por id y otro por classname.El código anterior devuelve verdadero si la casilla de verificación está marcada o falso si no.
fuente
var isChecked = $('#CheckboxID').attr('checked') ? true : false;
pero no siempre devolvió el valor correcto. ¡Así que gracias!Todos los siguientes métodos son útiles:
Se recomienda evitar DOMelement o "this.checked" en línea, en lugar de jQuery en el método se debe usar el detector de eventos.
fuente
Código jQuery para verificar si la casilla está marcada o no:
Alternativamente:
fuente
:
... una correcta es:if(('input[name="checkBoxName"]').is(':checked'))
.if($('input[name="checkBoxName"]').is(':checked'))
.else
bloque, ya que un objeto jQuery, incluso si no contiene elementos coincidentes, es "verdadero". Añadir.length
al final, entonces estás hablando.Todos los métodos a continuación son posibles
fuente
Puedes usar este código,
fuente
Según la documentación de jQuery , existen las siguientes formas de verificar si una casilla está marcada o no. Consideremos una casilla de verificación, por ejemplo (marque Working jsfiddle con todos los ejemplos)
Ejemplo 1 - Con marcado
Ejemplo 2 - Con jQuery es, NOTA -: marcado
Ejemplo 3 - Con jQuery prop
Comprobar trabajo jsfiddle
fuente
Puedes probar esto:
fuente
attr
solo refleja el valor del atributo en HTML, no el valor de la propiedad en el DOM. Consulte la documentación paraattr
, donde dice "Para recuperar y cambiar las propiedades DOM, como elchecked
,selected
o eldisabled
estado de los elementos de formulario, use el.prop()
método", y la documentación paraprop
, donde dice "El.prop()
método debe usarse para establecerdisabled
y en suchecked
lugar del.attr()
método ".Puede usar cualquiera de los siguientes códigos recomendados por jquery.
fuente
Sé que el OP quiere jquery, pero en mi caso JS puro fue la respuesta, así que si alguien como yo está aquí y no tiene jquery o no quiere usarlo, aquí está la respuesta de JS:
Devuelve verdadero si la entrada con ID myCheck está marcada y falsa si no está marcada.
Simple como eso.
fuente
$("#myCheck")[0].checked
funcionará en jquery! : DPuedes hacerlo simplemente como;
Violín de trabajo
HTML
jQuery
o incluso más simple;
Si
checkbox
está marcado, volverá de lotrue
contrarioundefined
fuente
or even simpler;
->$("#checkbox").checked
Esta es también una idea que uso con frecuencia:
Si está marcado, devolverá 1; de lo contrario, devolverá 0.
fuente
Demo simple para marcar y configurar una casilla de verificación.
jsfiddle !
fuente
Solo para decir en mi ejemplo, la situación era un cuadro de diálogo que luego verificó la casilla de verificación antes de cerrar el cuadro de diálogo. Ninguno de los anteriores y ¿Cómo verificar si una casilla de verificación está marcada en jQuery? y jQuery si la casilla de verificación está marcada tampoco parecía funcionar.
En el final
Esto funcionó llamando a la clase y luego a la ID. en lugar de solo la identificación. Puede deberse a que los elementos DOM anidados en esta página causan el problema. La solución estaba arriba.
fuente
Para casilla de verificación con una identificación
simplemente puedes hacer
obtendrá
true
ofalse
como valor de retorno para la sintaxis anterior. Puede usarlo en la cláusula if como expresión booleana normal.fuente
Algo como esto puede ayudar
fuente
De hecho, de acuerdo con jsperf.com , ¡las operaciones DOM son más rápidas, luego $ (). Prop () seguido de $ (). Is () !!
Aquí están las sintaxis:
Prefiero personalmente
.prop()
. A diferencia.is()
, también se puede usar para establecer el valor.fuente
Casilla de verificación activada
fuente
Con este código, puede marcar al menos una casilla de verificación seleccionada o no en diferentes grupos de casillas de verificación o desde varias casillas de verificación. Con esto, no puede requerir eliminar ID o ID dinámicas. Este código funciona con las mismas ID.
Enlace de referencia
fuente
Dado que es mediados de 2019 y jQuery a veces pasa a segundo plano a cosas como VueJS, React, etc. Aquí hay una opción de escucha de descarga de Javascript puro:
fuente
Su pregunta no está clara: desea dar "ID de matriz de casilla de verificación" en la entrada y llegar
true/false
a la salida; de esta manera no sabrá qué casilla de verificación se marcó (como sugiere su nombre de función). Así que a continuación está mi propuesta de cuerpo,isCheckedById
que en la entrada toma la casilla de verificaciónid
y en la salida de retornotrue/false
(es muy simple, pero su ID no debe ser una palabra clave),Mostrar fragmento de código
fuente
usa el código a continuación
fuente
$(function() { $("[id$='chkSendMail']").on("change", ShowMailSection); });
$("[id$='chkSendMail']:checked]")
debería funcionar bien