Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1839 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [javascript]-Détecter les changements des checkbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[javascript]-Détecter les changements des checkbox

n°2343457
Furaxx
Posté le 20-12-2019 à 13:44:53  profilanswer
 

Bonjour,
 
J'ai un tableau avec une checkbox pour chaque ligne.
Lorsqu'un utilisateur clique dessus j'active ou désactive des fonctionnalités en ajax, pas de souci.
 
Je souhaite faire une checkbox supplémentaire qui coche ou décoche toutes les cases en même temps, et qui donc déclenche aussi mon autre fonction pour activer/désactiver les fonctionnalités... Et c'est là que ça coince.
Ma checkbox général a bien un effet sur toutes les autres, mais la fonction qui devrait être lancée au moment du changement d'état de chacune ne se lance pas.
 
Voici mon code:
 
Fonction lancée lors d'un clic sur le checkbox générale:
 

Code :
  1. $(document).on('click', 'input[name="check_all"]', function(e) {
  2.                 if($(this).is(':checked')) {
  3.                     $('input[name="actif"]').prop('checked', true);
  4.                 } else {
  5.                     $('input[name="actif"]').prop('checked', false);
  6.                 }
  7.             });


 
Fonction lancée lors d'un clic sur une checkbox simple (et qui donc devrait être lancée lors du clic sur la générale):

Code :
  1. $(document).on('change', 'input[name="actif"]', function(e) {
  2.                 $.ajax({
  3.                     url : 'L_URL',
  4.                     type : 'POST',
  5.                     data : {mes_donnees},
  6.                     dataType : 'html',
  7.                     success : function(html) {
  8.                         // Succès: Aucun retour
  9.                     },
  10.                     error : function(resultat){
  11.                         alert('Erreur : ' + resultat)
  12.                     }
  13.                 });


 
La seconde fonction fonctionne donc très bien lors d'un clic sur une checkbox seule, mais n'est pas activée lors d'un clic sur la générale (mais l'état des checkbox à l'écran change bien lui).
 
Par avance, merci pour votre aide.

mood
Publicité
Posté le 20-12-2019 à 13:44:53  profilanswer
 

n°2343464
mechkurt
Posté le 20-12-2019 à 14:41:11  profilanswer
 

trigger('change') https://api.jquery.com/trigger/ ?

Code :
  1. $(document).on('click', 'input[name="check_all"]', function(e) {
  2. if($(this).is(':checked')) {
  3.  $('input[name="actif"]').attr('checked', true).trigger('change');
  4. } else {
  5.  $('input[name="actif"]').attr('checked', false).trigger('change');
  6. }
  7. });


https://jsfiddle.net/etwhpbyf/
 
Par contre si on prend mon code html et ta logique de on change : ça déclenchera 3 appel AJAX, que l'on coche ou que l'on décoche, c'est pas top niveau optimisation des ressources... ^^


---------------
D3
n°2343472
Furaxx
Posté le 20-12-2019 à 15:03:15  profilanswer
 

Merci beaucoup, je viens de tester et ça fonctionne parfaitement.
 
J'ai juste ajouté un petit truc à ton code pour que le "change" ne se fasse que sur les éléments dont la coche change réellement (sinon c'est lancé aussi pour ceux qui étaient déjà cochés:
 
$('input[name="actif"]:not(:checked)').prop('checked', true).trigger('change');
 
Encore merci! :)
Je verrai pour optimiser ça en mettant par exemple les ID à changer dans un tableau, puis ne lancer la fonction ajax une seule fois avec ça.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [javascript]-Détecter les changements des checkbox

 

Sujets relatifs
[Javascript] Désélectionner un choix d'un select[Javascript] CORS et API calls
Live Search JavascriptSoucis Regex et string.search javascript
Passage de paramètre du PHP au Javascript[JAVASCRIPT] JSON.parse()
[HTML/CSS][JavaScript] Récupérer un ID sur une autre page WebCheckbox et VBA
Détecter un changement de valeur dans un input 
Plus de sujets relatifs à : [javascript]-Détecter les changements des checkbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR