Considérez cet exemple simple code:
$('#select_all').change(function() { var checkboxes = $(this).closest('form').find(':checkbox'); if($(this).is(':checked')) { checkboxes.attr('checked', 'checked'); } else { checkboxes.removeAttr('checked'); } });
6 Réponses :
Vous avez plusieurs éléments avec le même ID, qui est invalide HTML et causant le problème que vous voyez. Changer id = "select_all" code> à
class = "select_all" code> et
$ ('# select_all') code> to
$ ('. select_all ') code>, et vous devriez être bon. p>
Si seulement je pouvais récupérer la dernière heure et la moitié de la recherche de Google.
Les identifiants sont uniques. Vous avez deux. Si vous souhaitez plusieurs éléments, utilisez class = "select_all" code> et
$ (". SELECT_ALL ') CODE> P>
Vous avez deux éléments avec ID SELECT_ALL CODE>; Ce n'est pas permis. Changez-le à une classe et essayez ceci:
$('.select_all').change(function() {
var checkboxes = $(this).closest('form').find(':checkbox');
checkboxes.attr('checked', $(this).is(':checked'));
});
Pas besoin d'utiliser .is (': coché') code> car vous pouvez simplement inspecter la propriété
.checked code> de la case à cocher. Aucun point d'avoir un appel supplémentaire jQuery
Hein, JQuery est bon marché. Il est peu probable que ça va être un goulot d'étranglement.
$('#select_all').click(function() { $("input:checkbox", $(this).closest('form')).attr("checked", this.checked) }); However, you will need only one item with id select_all for this to work. If you can change to a class of select_all then just replace the # with a . and you're good to go
Essayez ceci:
$("#select_all").click(function() { var checked_status = this.checked; $("input[@name=name]").each(function() { this.checked = checked_status; }); });
Assurez-vous également que vous avez une classe «select_all» au lieu de deux identifiants.
Cela ne vous aidera pas. Le problème est l'identifiant dupliqué. Et puis il choisira toutes les cases à cocher i> de tous les formulaires i>.
Oui, j'ai compris qu'après avoir posté le code. S'il vous plaît voir la première réponse, cela devrait résoudre votre problème.
Vous ne pouvez pas avoir deux éléments avec le même identifiant. exemple
html: p> JS: < / p>
Plug Shameless: Consultez mon Plugin à checkall JQuery (travaillant toujours sur la documentation)