2009-11-02 10 views
3

Dans quel ordre dois-je effectuer la validation? & Confirmation? Signification, dois-je d'abord demander à l'utilisateur de confirmer enregistrer ou d'abord valider le formulaire?Validation d'abord, confirmation plus tard?

Considérons deux cas, dans la première - la validation est très rapide, dans la seconde - la validation peut prendre quelques secondes. Changez-vous l'ordre alors? Editer: Le bouton n'agit pas comme "sauvegarder" mais effectue une "suppression", donc une confirmation est nécessaire.

Répondre

4

Validez en premier. Si vous avez un cycle d'erreurs, cela réduit considérablement le nombre de boîtes de dialogue.

Tenez compte sauver puis valider, avec 3 séries d'erreurs:

Enregistrer Confirmer -> Valider (échoue), Enregistrer confirmation -> Valider (échoue), Enregistrer confirmation -> Valider (échoue) - > Sauvegarder (passe).

C'est 7 boîtes de dialogue. Maintenant avec valider:

Valider (échoue) -> Valider (échoue) -> Valider (échoue) -> Enregistrer (passe).

Cela fait 4 boîtes de dialogue. Essayez d'optimiser votre routine de validation! Aussi, sauvegarder une opération dangereuse? Avez-vous vraiment besoin d'une confirmation de sauvegarde? Vous pourriez avoir un mécanisme d'historique à la place (un peu comme SO) et éliminer complètement le dialogue de sauvegarde.

Une autre option est de permettre à l'utilisateur d'enregistrer des données non valides, qui peuvent ou non être exploitables selon votre solution. Si vous craignez de ruiner votre conception de base de données en enregistrant des données invalides (certaines personnes le font en autorisant des colonnes à être nulles, alors qu'elles ne le devraient pas), vous pouvez toujours conserver l'état temporairement à un BLOB.

+0

La validation est plus ou moins optimisée. Je regarde le pire scénario de 2 secondes (lorsque le serveur est occupé avec des routines quotidiennes (sauvegardes de DB, etc.) Une confirmation est requise, ce n'est pas un bouton "enregistrer", mais un bouton "supprimer". cependant - m'a convaincu. – Faruz

1

Si possible, ne créez pas d'étape supplémentaire ("save now y/n") - fournissez plutôt l'annulation ("document sauvé, en cours de validation. [Link] Oups, je ne voulais pas sauvegarder, défait [ /lien]"). De cette façon, l'utilisateur aura un moyen de "ne pas enregistrer", tandis que vous validez en arrière-plan. Si vous ne pouvez pas enregistrer sans validation, placez les données envoyées par l'utilisateur à un emplacement temporaire (affichez maintenant "vérifier vos données"), validez et, si elle réussit la validation, sauvegardez en arrière-plan, sinon alertez l'utilisateur .

+0

Seulement je ne peux pas enregistrer lorsque le formulaire ne valide pas. Donc, je ne peux pas d'abord effectuer la sauvegarde, puis valider. – Faruz

+0

C'est bien tant que vous autorisez l'utilisateur à enregistrer des données invalides. – RichardOD

0

Est-ce dans cet ordre:

  • validation rapide
  • Confirmer enregistrer
  • validation lente

De cette façon, vous ne perdez pas votre temps aux utilisateurs et la plupart des problèmes seront pris avant que l'utilisateur est invité à cliquer quelque part.

+1

Le problème avec la validation en premier est le suivant: (Considérez ce scénario): 1. L'utilisateur essaie de sauvegarder. J'ai une erreur 2. L'utilisateur corrige une erreur, essaie de sauvegarder puis demande "Voulez-vous sauvegarder?" 3. L'utilisateur appuie sur "Oui" et obtient une erreur ... Il devient un gâchis, non? – Faruz

3

Je suis récemment allé au StackOverflow DevDay à Londres, et Joel Spolsky a très bien parlé du fait que les utilisateurs n'aiment pas être incités à prendre des décisions. Il a utilisé l'exemple que vous avez souvent des invites répétées dans le logiciel pour confirmer que vous voulez faire, ce que vous venez de demander au logiciel de faire.Il y avait un exemple de bouton d'achat en un clic d'Amazon (je pense) où il fallait à l'origine plusieurs clics pour acheter un produit - 1 clic sur le bouton, puis un autre pour confirmer l'achat. Il devient enfin un véritable bouton d'achat en 1 clic, optimisé pour la majorité. La plupart des personnes qui cliquent sur le bouton ne veulent pas être invitées à confirmer. Pour la minorité qui commet une erreur et veut la défaire, il y a un moyen par lequel elle peut ensuite l'annuler et l'annuler par la suite. Alors posez-vous la question: dois-je vraiment demander à l'utilisateur de confirmer avant de sauvegarder? Si ils ont cliqué sur un bouton Enregistrer, ils ont fait le choix d'enregistrer.

1

La validation des webapps est toujours un peu différente. En général, vous auriez un tel flux

  • validate instantanément en utilisant JavaScript côté client
  • l'utilisateur appuie sur « Enregistrer »
  • effectuer une validation plus intense/sophistiqué sur le côté serveur et rapport des problèmes dans case

Dans votre exemple spécifique que vous avez mentionné (l'opération de sauvegarde), je ne demanderais aucune confirmation. Je veux dire, c'est une opération de sauvegarde et il devrait y avoir une opération de suppression correspondante, aussi. Donc pour enregistrer, aucune invite n'est nécessaire dans mon cas. Je voudrais vraiment inviter juste dans les cas où l'utilisateur ne peut pas revenir en arrière comme lors de la suppression d'une entrée.

Questions connexes