Sé cómo ver si una casilla de verificación individual está seleccionada o no.
Pero tengo problemas con lo siguiente: dado un identificador de formulario, necesito ver si alguna de las casillas de verificación está seleccionada (es decir, 1 o más), y necesito ver si ninguna está seleccionada. Básicamente necesito dos funciones separadas que respondan estas dos preguntas. La ayuda sería apreciada ¡Gracias!
En realidad, solo necesitaría una función para decirme si no hay ninguna seleccionada. Saber esto respondería la otra pregunta.
javascript
jquery
forms
bba
fuente
fuente
Respuestas:
Puedes usar algo como esto
fuente
$("#formID input:checkbox:checked").length
sería suficiente aquí tambiénif ($("#formID input:checkbox:checked").length){}
(sin el>0
) sería suficiente porque 0 es un valor falso, ver james.padolsey.com/javascript/truthy-falsey:checkbox
selector:For better performance in modern browsers, use [type="checkbox"]
ver api.jquery.com/checkbox-selector - lo mismo para radiobuttons por cierto,use [type="radio"] rather than :radio
api.jquery.com/radio-selectorJQuery
.is
probará todos los elementos especificados y devolverá verdadero si al menos uno de ellos coincide con el selector:fuente
is()
parece funcionar, tener:checked
directamente en el selector como se indica en la respuesta de @ rahul parece más apropiado. is () parece más útil cuando "dentro de devoluciones de llamada", consulte api.jquery.com/is . ¿O me estoy perdiendo algo?.is(":checked")
en su solución es más expresivo, no estoy seguro del resto.$("form input[type=checkbox]").is(":checked")
podría ser un enfoque más simple y más genérico.is
podría ser un mejor rendimiento, porque se detiene tan pronto como encuentra uno.Puedes hacerlo:
Dónde:
:checkbox
El selector de filtro selecciona todas las casillas de verificación.:checked
seleccionará casillas marcadaslength
dará la cantidad de marcados allífuente
:checkbox
selector:For better performance in modern browsers, use [type="checkbox"]
ver api.jquery.com/checkbox-selectorEsto es lo que utilicé para verificar si alguna casilla de verificación en una lista de casillas de verificación había cambiado:
fuente
Sin usar 'length' puedes hacerlo así:
fuente
Puede hacer un simple retorno de
.length
aquí:Esta búsqueda de casillas de verificación en el formulario dado, ve si hay alguna
:checked
y devuelvetrue
si son (ya que la longitud sería 0 de lo contrario). Para hacerlo un poco más claro, aquí está la versión convertida no booleana:Esto devolvería un recuento de cuántos se verificaron.
fuente
La respuesta de Rahul es la más adecuada para su pregunta. De todos modos, si tiene un grupo de casillas para marcar y no todas las casillas en su formulario, puede hacerlo.
Ponga un nombre de clase para todas las casillas de verificación que desea marcar, por ejemplo, un nombre de clase
test_check
y ahora puede verificar si alguna de las casillas de verificación está marcada como perteneciente al grupo:Si regresa
true
, suponga que una o más casillas de verificación están marcadas con el nombre de clasetest_check
y ninguna marcada si devuelvefalse
.Espero que ayude a alguien. Gracias :)-
fuente
Esta es la mejor manera de resolver este problema.
fuente