Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai une fonction check_all qui represente un checkbox qui me permet si je la coche de faire cocher toutes les autres checkbox.
Comme je gere la partie php en ajax, j'utilise "$('body').on('change')" pour que ca fonctionne.
Le probleme est que avec cette méthode l'evenement trigger ne fonctionne pas, c'est un probleme qui revient souvent d'apres mes recherches mais malgré tous mes tests impossible de trouver une solution...


    function check_all($check_all, $checkbox){
        $('body').on('change', $check_all, function()
        {
                if($check_all.is(':checked'))
                {
                    $checkbox.prop('checked');
                    $checkbox.parent().addClass('active');
                    check_simulate($checkbox);
                }
               else{  
                    $checkbox.parent().removeClass('active');
                    check_simulate($checkbox);
               }
        });
    }

    function check_simulate($elem){
         $elem.trigger('change');
    }```

2 réponses


L'évenement change n'est pas appeler quand tu change la valeur par programation.
Il est uniquement appeler quand l'utilisateur change la valeur via l'interface
@plus.
Pierre

xenos92
Auteur

Je ne sais pas si j'ai bien compris, mais je change bien la valeur via l'interface.
En fait en cliquant sur la checkbox "all" ca doit me cocher toutes les checkboxs.
La partie ajax me permet juste de rentrer les valeurs des checkbox dans la BDD suivant qu'elles soient checked ou non.
Comme j'utilise de l'ajax pour faire appel a ma page contenant ces checkboxs il faut que j'utilise :

$('body').on('change', $check_all, function()

car ceci ne marche plus :

$check_all.change(function()