Bonsoir j'ai fait un truc rapide qui devrais fonctionner à tester :
et le js qui va avec :
Bonjour,
J'ai des groupes de cases à cocher qui sont listées dans un tableau :
Chaque ligne de mon tableau est générée à partir de ma base de données, je dois avoir en gros une dizaine de groupes.
Pour le traitement de mon formulaire, il serait idéal que les "names" de mes checkbox restent comme présentées ci-dessus.
Ce que je souhaiterais comme fonctionnement :
J'ai trouvé des tonnes de solutions sur le net mais qui fonctionnent uniquement avec des groupes qui ne sont pas générés dynamiquement.
Je débute avec JS & jQuery et je ne sais pas par où commencer.
Si vous avez des conseils ou des idées de codes pour faire fonctionner ce petit formulaire je suis plus que preneur !
Bonsoir j'ai fait un truc rapide qui devrais fonctionner à tester :
et le js qui va avec :
Salut,
de mon coté j'aurai fais comme ça :
Je ne sais pas si c'est mieux ou moins bien.
[EDIT]
Prend plutôt la solution de cattleyas10,
il passe par des fonctions c'est bien mieux.
Et pas besoin de charger jQuery.
Bonjour.
Prend plutôt la solution de cattleyas10, il passe par des fonctions c'est bien mieux.
Et pas besoin de charger jQuery.
En fait si, même si ce n'est pas tout le temps, il utilise jQuery dans son exemple.
Ah zut xD
bah ça reste quand même mieux que mon code ^^
Effectivement je me sert quand même de Jquery , à savoir la meilleur solution je n'en ai aucune idée le souci avec ma solution c'est que je parcours les éléments du dom donc ca fonctionne bien si tu garde cette logique à savoir deux td un avec l'input group et un autre pour les voies
après ton code est pas mal aussi peut-être un mélange des deux genre ajouter la class="grp" au input group et la class="voies" au input voie et le js qui va avec
ca fonctionne aussi et ca évite de surcharger le contenu des td une simple class à ajouter dans les différents input des td et plus de onchange ou onclick
Salut,
Merci pour le temps passer.
J'ai effectué une petite modification pour pouvoir utiliser ton code dans tous les cas de figures où je peux en avoir besoin, pour les class j'ai défini comme suit :
Tu as laissé un petit "/" traîner à la fin après une "}" (4eme ligne en partant du bas).
Ca donne pour le JS :
Je me suis permis de le commenter un peu plus, ca m'aide à la compréhension.
Tout fonctionne bien lorsque :
Par contre si je déselectionne un des enfants ca ne me décoche pas le parent.
En mettant des alerts je sais que j'arrive bien dans le traitement du parent :
Je cherche voir d'où ca peut venir.
Je te donne quelques lignes de mon tableau pour voir si le problème provient de sa faute ou si le sélecteur n'arrive pas à cibler l'input parent :
L'utilisation de la librairie jQuery ne me pose aucun problème, je l'utilise déjà pour quelques fonctions de mon portail.
Je viens de faire quelques tests avec la console en mettant ca :
Ce qui me donne dans la console du navigateur :
Si je clique sur "<input#emp_grp_id[].parentCheckBox>" du context à chaque fois la valeur "checked : true"
Firefox m'indique bien dans l'inspecteur que le noeud correspond à la checkbox à décocher...
C'est étrange car je viens de teste ce que tu m'as donné et quand je décoche une voie ca décoche bien le groupe....
Essai de vider le cache de ton navigateur au cas ou^^
Bon je confirme que ton code fonctionne. J'ai essayé en mettant le code juste dans une page à part de mon seveur et nickel.
En gros une page .html avec juste :
Par contre dans le cadre de mon portail juste la fonction pour cocher / décocher les enfants fonctionne.
Je n'ai pas trop de doutes mais je pense que c'est mon modèle MVC qui doit poser problème.
Par exemple au début, en suivant les bonnes pratiques, j'avais placé la balise < script src=".../jquery.js" >< /script > juste avant mon < /body > mais pour des raisons que j'ignore certains de mes scripts JS ne fonctionnaient pas, j'ai dû placer l'appel dans le < header >.
Tous mes scripts sont placés dans des fichiers .js dans un répertoire : public/js/lefichier.js que j'appelle dans la vue que je souhaite afficher.
Je suis en train de tenter 2/3 trucs mais rien n'y fait...
ha oui ok je vois si tu le place dans un fichier et qu'il se trouve dans le head prend ceci plutôt :
il faut simplement
au début et
à la fin et ca devrais fonctionner
Tous mes scripts JS sont déjà encadrés dans ces balises.
Enfin pour être précis :
Mais si j'ai bien compris le résultat final est identique.
effectivement c'est étrange :(
Ca y est, tout fonctionne.
J'ai mis l'écoute avec la fonction .on car mon < table > est appelé en AJAX.
Voilà le JS qui fonctionne :
Merci pour ta solution cattleyas10.
Coucou je t'en prie , on y a tous contribué ;)