En lugar de ejecutar la misma expresión jquery varias veces, estoy rellenando una variable durante $(document).ready
:
var checkboxes = $("#<%=tbl.ClientID %> input[id*="chk"]");
Aquí, estoy almacenando la lista de casillas de verificación que terminan con "chk" dentro de la tabla con el id de "tbl
"en las casillas de verificación variables.
Más tarde, quiero deshabilitar un botón si ninguna de las casillas está marcada.
Estoy tratando de hacer algo como:
btn.disabled = $(checkboxes:checked").length == 0;
pero nada esta pasando Ideas?
Respuestas
0 para la respuesta № 1checkbox
en su código es un objeto jQuery. Usted está tratando de usarlo como una cadena.
Puedes tomar esa lista de casillas que estánya está en el objeto jQuery y luego filtre hacia abajo para obtener un resultado que sea solo el que está actualmente seleccionado y luego verifique la longitud de este como este:
btn.disabled = checkboxes.filter(":checked").length === 0;
O bien, puede ejecutar un selector completamente nuevo desde cero donde combine ":checked"
Con tu selector anterior.
1 para la respuesta № 2
Si ya tienes una colección de jQuery, puedes filtrarla hacia abajo. Puedes usar el $.fn.filter
método para excluir / incluir condicionalmente elementos en la nueva colección, o usar algo como $.fn.find
para pasar en una nueva selección para que coincida con todos los niños en contra.
Leer más en línea en http://api.jquery.com/category/traversing/.