Je sais comment voir si une case individuelle est cochée ou non.
Mais j'ai des problèmes avec ce qui suit - étant donné un identifiant de formulaire, j'ai besoin de voir si l' une des cases à cocher est cochée (c'est-à-dire 1 ou plus), et j'ai besoin de voir si aucune n'est sélectionnée. Fondamentalement, j'ai besoin de deux fonctions distinctes qui répondent à ces deux questions. Une aide serait appréciée. Merci!
En fait, j'aurais juste besoin d'une fonction pour me dire si aucune n'est sélectionnée. Sachant cela répondrait à l'autre question.
Réponses:
Vous pouvez utiliser quelque chose comme ça
la source
$("#formID input:checkbox:checked").length
serait suffisant ici aussiif ($("#formID input:checkbox:checked").length){}
(sans le>0
) serait suffisant car 0 est une valeur fausse, voir james.padolsey.com/javascript/truthy-falsey:checkbox
sélecteur :,For better performance in modern browsers, use [type="checkbox"]
voir api.jquery.com/checkbox-selector - idem pour radiobuttons btw,use [type="radio"] rather than :radio
api.jquery.com/radio-selectorJQuery
.is
testera tous les éléments spécifiés et retournera true si au moins l'un d'entre eux correspond au sélecteur:la source
is()
semble fonctionner, avoir:checked
directement dans le sélecteur comme indiqué dans la réponse de @ rahul semble plus approprié. is () semble plus utile lors de "rappels internes", voir api.jquery.com/is . Ou est-ce que je manque quelque chose?.is(":checked")
dans votre solution est plus expressif, pas sûr du reste cependant.$("form input[type=checkbox]").is(":checked")
pourrait être une approche plus simple et plus générique.is
pourrait être de meilleures performances, car il s'arrête dès qu'il en trouve un.Tu peux le faire:
Où:
:checkbox
le sélecteur de filtre coche toutes les cases.:checked
sélectionnera les cases cochéeslength
donnera le nombre de vérifiés là-basla source
:checkbox
sélecteur :,For better performance in modern browsers, use [type="checkbox"]
voir api.jquery.com/checkbox-selectorC'est ce que j'ai utilisé pour vérifier si des cases à cocher dans une liste de cases à cocher avaient changé:
la source
Sans utiliser 'length', vous pouvez le faire comme ceci:
la source
Vous pouvez faire un simple retour de
.length
ici:Cette recherche de cases à cocher dans la forme donnée, voit s'il y en a
:checked
et renvoietrue
si elles le sont (puisque la longueur serait 0 sinon). Pour rendre les choses un peu plus claires, voici la version convertie non booléenne:Cela renverrait un décompte du nombre de vérifications.
la source
La réponse de Rahul est la mieux adaptée à votre question. Quoi qu'il en soit, si vous avez un groupe de cases à cocher à cocher et pas toutes les cases à cocher dans votre formulaire, vous pouvez y aller.
Mettez un nom de classe pour toutes les cases à cocher que vous souhaitez cocher, par exemple un nom de classe
test_check
et maintenant vous pouvez vérifier si l'une des cases à cocher est cochée appartenant au groupe en:S'il retourne
true
, supposons qu'une ou plusieurs cases à cocher sont cochées avec le nom de la classetest_check
et aucune cochée si retournefalse
.J'espère que ça aide quelqu'un. Merci :)-
la source
C'est la meilleure façon de résoudre ce problème.
la source