7
votes

Comment vérifier toutes les cases à cocher dans le formulaire actuel avec jQuery?

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');
  }
});


1 commentaires

Plug Shameless: Consultez mon Plugin à checkall JQuery (travaillant toujours sur la documentation)


6 Réponses :


8
votes

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" à class = "select_all" et $ ('# select_all') to $ ('. select_all ') , et vous devriez être bon.


1 commentaires

Si seulement je pouvais récupérer la dernière heure et la moitié de la recherche de Google.



0
votes

Les identifiants sont uniques. Vous avez deux. Si vous souhaitez plusieurs éléments, utilisez class = "select_all" et $ (". SELECT_ALL ')


0 commentaires

1
votes

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'));
});


2 commentaires

Pas besoin d'utiliser .is (': coché') car vous pouvez simplement inspecter la propriété .checked 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.



0
votes
$('#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

0 commentaires

0
votes

Essayez ceci:

$("#select_all").click(function()               
        {
            var checked_status = this.checked;
            $("input[@name=name]").each(function()
            {
                this.checked = checked_status;
            });
        });


3 commentaires

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 de tous les formulaires .


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.



0
votes

Vous ne pouvez pas avoir deux éléments avec le même identifiant. exemple

html: xxx

JS: < / p> xxx


0 commentaires