Affichage conditionnelle du bouton de validation : ne pas appliquer en multi étape
Problème relevè en formidable, mais c'est au niveau de saisie que cela se règle.
Descriptio
Soit un formulaire structuré ainsi :
- fieldset 1 : parcours de formation
- saisie radio "Debuter/Photogragphier/Photographie avancé"
- je suis responsable / je ne pas responsable du parcours
- fiedlset 2 conditionné au choix de "Photographie avancé" en fieldset 1.
- serie de question type qcm permettant de calculer un score
- bouton de validation dont l'affichage est conditionné à
- soit le parcours est différent de "Photographie avancé"
- soit si photographie avancé, le score est supérieur à 3
En gros l'idée c'est de ne pas permettre à des gens de s'inscrire en photographie avancé si iels n'ont pas les bases.
Tout va bien.
Un jour j'oublie ces histoire de conditionnels sur le bouton de validation. Et je me dit "tiens testons le multi étape"
Sauf que l'affichage conditionnel des boutons se fait sur tous les boutons, que ce soit le bouton de validation final ou les boutons d'étape. Résultat la personne ne pouvais pas passer l'étape 1, vu que cela impliquait des tests sur des champs dans l'étape 2.
Piste de solution
Deja je pense que le bouton de validation ne doit être conditionné que si c'est le final.
Ensuite je pense qu'il vaudrait mieux meme le conditionner que si c'est du mono étape, parce que cela n'a pas de sens d'etre bloqué sur une validaiton finale à la fin de la Xeme étape.
Mais par contre, on pourrait vouloir avoir la meme mecanime pour passer à l'étape n+1. Autrement dit "je veux qu'à la fin de cet étape, ces conditions soient remplis".
Sauf que ergonomiquement il faudrait associer cela au fiedlset (pour que ce soit retrouvable plus facilement) mais le multi étape s'active au niveau global.
Proposition du coup
- Pour chaque fieldset, on peut avoir une "condition de validation" (sous forme de tests d'afficher si)
- Cette condition est validée :
a. Etape par étape si on es en multi étape
b. Globalement à la fin si on est mono étape (en gros on merge tous les valider_si en mettant un
&&
au milieu)