Bonjour,
Pour valider mes formulaires je viens de découvrir les promesses (la version jquery)
Lorsque je clique sur mon bouton submit, je check les contrôles de mes champs obligatoires et si les tests sont bons, je lance le callback du submit.
Grosso modo cette partie ressemble à ça :
les fonctions doValidate() sont asynchrones, checkent que le champ est valide (affichent une erreur si ce n'est pas le cas) et retournent l'objet post
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $.when( doValidate('montant', callbackUrl, formid), doValidate('numero', callbackUrl, formid) ).done(function () { var postdata = form.serialize(); $.post(callbackUrl, postdata , function (response) { $('#' + ajaxContainer).empty(); $('#' + ajaxContainer).html(response); }); });
Jusque là, ça fonctionne bien. Je suis en train de généraliser mes contrôles de formulaire. Les champs obligatoires tel que 'montant' et 'numero' sont maintenant stockés dans un tableau. Cette partie doit donc maintenant les récupérer dans ce tableau (c'est intuitivement la première approche que j'ai. Mais je pense qu'elle n'est pas adaptée).
Et là je suis un peu paumé.
doValidate('montant', callbackUrl, formid) exécute la fonction et c'est le résultat de cette exécution (asynchrone) qui est passé à when().
ça me parait complétement impossible en passant par un array ou une fonction qui fait l'appel et fait des retour de ces appels de manière asynchrone en dehors de sa portée (Je ne suis pas dev javascript, il y a donc beaucoup de choses qui sont un peu obscures pour moi actuellement).
Quelqu'un aurait t'il des précisions ou une approche me permettant de réaliser cette partie?
Partager