2009-02-11 3 views
0

J'ai une application Rails avec un modèle dont les champs sont des dates qui sont des points de contrôle pour un certain processus.Dans Rails, comment puis-je m'assurer que les utilisateurs entrent les données de formulaire dans le bon ordre?

Je souhaite empêcher l'utilisateur d'entrer une date pour le nième point de contrôle jusqu'à ce qu'il ait entré une date pour le (n-1) e.

Évidemment, je peux valider dans le modèle pour m'assurer qu'aucune date ne manque (et que les dates sont dans l'ordre chronologique) mais cela semble insatisfaisant. Idéalement, le nième champ ne devrait pas être visible sur le formulaire tant que le (n-1) e champ n'a pas été complété (et peut-être que le bouton suivant a été cliqué.)

Je ne sais pas grand-chose sur AJAX autre que Je l'ai utilisé pour ajouter des commentaires sur un blog, mais il me semble que cela pourrait être utile dans ce problème, je vais y jeter un coup d'œil au cours des prochains jours, mais j'apprécierais que quelqu'un puisse me donner des conseils.

Répondre

1

Désactiver ou masquer toutes les entrées à l'exception du premier Lorsque l'utilisateur complète chaque entrée, utilisez un appel Ajax pour le valider et ensuite afficher/activer le suivant./activer le bouton Enregistrer/Continuer

+0

est ici un tutoriel sur faire afficher/cacher avec jquery: http://docs.jquery.com/Tutorials:Basic_Show_and_Hide. Il y a beaucoup de tutoriels et d'exemples de faire Ajax avec Rails - chaque livre de Rails a un chapitre dessus. Je pense que votre question est trop large pour obtenir une réponse de type HOWTO significative. – Jason

0

D'après votre description, cela pourrait être un bon cas d'utilisation pour une machine à états finis. Utilisez l'état actuel pour déterminer les champs de saisie de date à afficher sur vos formulaires.

Voir Github: rubyist/aasm

Questions connexes