La bascule de Cases on/off
J'ai le texte suivant:
$(document).ready(function()
{
$("#select-all-teammembers").click(function() {
$("input[name=recipients\\[\\]]").attr('checked', true);
});
});
J'aimerais le id="select-all-teammembers"
lorsque vous cliquez sur pour basculer entre activée et désactivée. Des idées? qui ne sont pas des dizaines de lignes de code?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire:
Avant de jQuery 1.6, quand nous avons seulement eu attr() et pas prop(), nous avons utilisé pour écrire:
Mais
prop()
a mieux sémantique queattr()
lorsqu'il est appliqué à "boolean" attributs HTML, de sorte qu'il est préférable dans cette situation.#select-all-teammembers
expose unchecked
de la propriété (c'est à dire lui-même une case à cocher ou un bouton radio). La question ne fait pas mention de quoi que ce soit, et la liaison àclick
au lieu dechange
pourrait sans doute être un indice de l'élément n'est pas une case à cocher (ou bouton radio). Même s'il l'était, sonname
attribut, également correspondrerecipients\[\]
pour que cette solution fonctionne comme prévu.checkBoxes.prop("checked", !checkBoxes.attr("checked"));
$('input[type=checkbox]').trigger('click');
mentionné par @2astalavista ci-dessous est plus succinct et déclenche l'événement "change".click
événements peuvent avoir des effets secondaires, par exemple, si les gestionnaires ne sont pas de contrôle sont à l'écoute de ces clics.Je sais que c'est vieux, mais la question était un peu ambigu en ce qu' bascule peut signifier chaque case doit basculer son état, quelle qu'elle soit. Si vous avez 3 vérifié et à 2 pas cochée, puis basculement ferait les 3 premiers de manière incontrôlée, et les 2 derniers vérifié.
Pour qu'aucune des solutions ici, le travail qu'ils font toutes les cases ont le même état, plutôt que d'alterner chaque case de l'état. Faire
$(':checkbox').prop('checked')
sur plusieurs cases à cocher retourne le ET logique entre tous les.checked
les propriétés binaires, c'est à dire si l'un d'entre eux n'est pas cochée, la valeur retournée estfalse
.Vous devez utiliser
.each()
si vous souhaitez activer chaque case de l'état plutôt que de les rendre tous égaux, par exempleNotez que vous n'avez pas besoin
$(this)
à l'intérieur, le gestionnaire comme le.checked
propriété existe dans tous les navigateurs.Ici est une autre façon que vous voulez.
Je pense que c'est plus simple pour déclencher un clic:
Depuis jQuery 1.6 vous pouvez utiliser
.prop(fonction)
pour basculer l'état activé de chaque élément trouvé:Utilisation de ce plugin :
Puis
La meilleure façon que je peux penser.
ou
ou
De supposer que c'est une image qui a pour basculer la case à cocher, cela fonctionne pour moi
Check-toutes les cases à cocher doit être mis à jour lui-même sous certaines conditions. Essayez de cliquer sur '#sélectionner tout-teammembers' puis décocher quelques éléments et cliquez sur sélectionner tout nouveau. Vous pouvez voir l'incohérence. Pour l'empêcher d'utiliser l'astuce suivante:
BTW toutes les cases DOM-objet doit être mis en cache, comme décrit ci-dessus.
Ici est un jQuery moyen d'alterner des cases à cocher, sans avoir à sélectionner une case à cocher avec html5 & étiquettes:
http://www.bootply.com/A4h6kAPshx
😉
Vous pouvez écrire comme ça aussi
Juste besoin d'appeler cliquez sur l'événement de la case à cocher lorsque l'utilisateur clic sur le bouton avec l'id '#case-toggle'.
Une meilleure approche et UX
Essayer:
Celui-ci fonctionne très bien pour moi.
!
signe avant..L'exemple le plus simple serait:
JS:
HTML:
simplement, vous pouvez utiliser cette
si vous voulez activer chaque zone individuellement (ou juste une boîte fonctionne tout aussi bien):
Je recommande d'utiliser .each() , comme il est facile à modifier si vous voulez des choses différentes à faire et encore relativement court et facile à lire.
par exemple :
sur une note de côté...
je ne sais pas pourquoi tout le monde utilise .attr() ou .prop() de (dé)vérifier les choses.
autant que je sache, élément.vérifié a toujours travaillé de la même dans tous les navigateurs?
dans ma supposition, la rightest homme qui a suggéré la variante normale est GigolNet Gigolashvili, mais je veux suggérer encore plus belle variante. Vérifier
Paramètre "cochées" ou la valeur null au lieu de vrai ou de faux, respectivement, vont faire le travail.
Ce code permet de basculer entre la case à cocher en cliquant tout bascule animateur utilisés dans les modèles web. Remplacer ".onoffswitch-label" tel que disponible dans votre code.
"checkboxID" est la case à cocher activée ici.
Eh bien, il est un moyen plus facile
Premier à Donner votre cases un exemple de classe 'id_chk'
Puis à l'intérieur de la case qui va contrôler 'id_chk' état des cases à cocher mettre:
<input type='checkbox' onchange='js:jQuery(".id_chk").prop("checked", jQuery(this).prop("checked"))' />
C'est tout, espérons que cette aide