Page 1 sur 1

Exécuter AJAX dans un form dans une fenêtre modale

Posté : 16 mars 2022, 21:29
par newdev
Bonjour,

Alors voilà, je suis apprenti avec ajax mais j'arrive à me débrouiller jusqu'à ce que je me trouves dans cette impasse :

J'utilise ajax pour charger un formulaire dynamique dans une fenêtre modale. Jusque là, tout va bien !

Le problème survient une fois dans la fenêtre modale. Je souhaite soumettre le formulaire qui se trouve dans la modale (généré avec un call ajax) et je souhaite le soumettre en utilisant ajax encore une fois et afficher le résultat dans une div à l'intérieur de la modale.

Sauf que... lorsque je soumets le form, le call ajax ne s'exécute pas et le page appelée par l'action du form s'affiche en rechargeant la page principale.

Si vous avez des expériences de la sorte, je serais intéressé de connaitre vos solutions. Je peux fournir les codes actuels si nécessaires.

Re: Exécuter AJAX dans un form dans une fenêtre modale

Posté : 19 mars 2022, 12:00
par ynx
Bonjour,

Comment est ajouté le listener (écouteur) pour capturer l'événement de soumission du formulaire ? L'événement est-il bien capturé ?
Puisque le formulaire n'existe pas au chargement de la page et est ajouté par la suite en ajax, il faudrait p-e utiliser la délégation d’événement pour que le listener fonctionne correctement.
https://davidwalsh.name/event-delegate
Sinon tu peux aussi ajouter le listener lorsque tu ajoutes le formulaire sur ta page.

Si ton listerner pour le formulaire capture l’événement "submit", tu devrais aussi utiliser la fonction preventDefault() sur l’événement passé en paramètre de la fonction du listener. Ceci permet d'annuler le comportement par défaut du bouton submit afin que tu puisses traiter la soumission via ajax.
https://developer.mozilla.org/fr/docs/L ... %C3%A9faut

Re: Exécuter AJAX dans un form dans une fenêtre modale

Posté : 09 mai 2022, 11:02
par two3d
Mets ton code, on verra d'où vient le problème.
Sauf que... lorsque je soumets le form, le call ajax ne s'exécute pas et le page appelée par l'action du form s'affiche en rechargeant la page principale.
Tu a peut être oublié de mettre un event.preventDefault()