Peut-on obliger un événement du genre « change » à s’exécuter avant un submit général ?
Je m’explique :
Imaginez un formulaire avec un bouton submit, un champ « valeur saisie » et un champ « valeur calculée ».
Un événement JQuery « change » est placé sur le champ « valeur saisie » pour que, lorsque la valeur change, un appel AJAX soit effectué pour calculer et renvoyer une valeur dans « valeur calculée ».
Imaginons pour faire simple que ce calcul (côté serveur) fasse « valeur calculée = valeur saisie + 1 » et, au submit, on enregistre dans une base de donnée le champ valeur saisie et le champ valeur calculée .
Imaginons qu’on frappe « 5 » dans le champ « valeur saisie » :
Le fonctionnement se passe bien lorsque, après changement de la valeur saisie, on clique autre part (mais pas sur le bouton submit ») dans la fenetre : dans ce cas l’événement « change » est détecté et tout se passe normalement, la valeur calculée passe à 6. Si on cliquait à ce moment là sur le bouton submit les valeurs enregistrées en BdD seraient les bonnes (« 5 » et « 6 »).
Replaçons le curseur dans le champ « valeur saisie » et remplaçons « 5 » par « 6 » sans cliquer en dehors du champ. Si on clique maintenant sur le bouton submit alors que le curseur était encore dans le champ « valeur saisie », alors l’appel AJAX ne s’effectue pas : on va enregistrer « 6 » et « 6 » dans la BdD.
La question est donc : comment faire pour obliger le système à exécuter l’événement « change »AVANT d’exécuter le submit ?
N'oubliez pas d'activer les erreurs PDO.