Bonjour à tous,
Aujourd'hui, je viens vers vous pour solliciter votre aide sur un problème que je ne connaissais pas.
Je m'explique :
Je travaille actuellement sur un formulaire tout ce qu'il y a de plus simple qui contient des champs obligatoires, des champs normaux et des listes en cascade, dont une qui prend sa valeur en fonction du choix de la précédente.
Ici, je sélectionne une option dans la liste "De quelle action ?*", et le champs d'en dessous se sélectionne automatiquement en allant chercher les informations qui vont bien grâce à une requête AJAX (idem pour le champ "Date de décision").
Jusqu'ici, tout va bien (mais le plus dur ce n'est pas la chute, c'est l’atterrissage !)
Maintenant, imaginons que l'utilisateur oublie de remplir un champ obligatoire, la page se recharge en lui affichant l'erreur en haut, les champs déjà saisis sont repeuplés et il n'a plus qu'à corriger les éventuelles erreurs de saisie.
C'est à ce moment-là que ma liste "De quelle action ?" est j'ai l'impression modifiée... En effet, après ce rechargement de page, si je fais un console.log() de son id (#select_action_mere), le console ne le considère pas comme un élément "select", je vous montre :
Je vais faire :
#select_action_mere correspond à ma liste déroulante "De quelle action ?*" qui présente le bug.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 console.log($('#select_action_mere')); console.log($('#select_instances'));
#select_instances correspond à la liste déroulante du dessous qui elle ne semble pas poser de problème.
Quand j'arrive sur ma page, les console.log() affichent :
Mes 2 select ici sont donc normaux.
Après une erreur de saisie et rechargement de la page, c'est comme si le #select_action_mere n'était plus un élément select, je ne comprends pas comment c'est possible :
Du coup, après une erreur, l'utilisateur aura beau changer l'option du premier select, le 2ème ne bougera plus puisque jQuery n'entre plus dans la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('form').on('change', '#select_action_mere', function() { ... });
Si vous avez besoin de code, n'hésitez pas à demander, même si je pense que c'est plus un problème de compréhension de ma part...
Merci,
Bonne journée.
Partager