web-dev-qa-db-fra.com

Est-il acceptable de forcer un utilisateur à entrer des données au lieu de modifier les données existantes

Est-il acceptable de forcer les utilisateurs à supprimer et recréer des données qu'ils ont saisies incorrectement ou devrait-on leur fournir un moyen de modifier chaque instance de ces données particulières?


Cas d'utilisation:

Le schéma filaire ci-dessous illustre le flux de travail dont nous discutons actuellement en interne. En raison des exigences techniques, les utilisateurs doivent entrer un modal pour entrer les informations et, une fois terminé, ils sont renvoyés à la page avec les nouvelles données apparaissant au bas du tableau. Il n'y a pas de cas où l'utilisateur devrait remplir plus de trois champs, et dans de nombreux cas, les utilisateurs n'auraient qu'à remplir les deux premiers.

Le scénario de ré-entrée se produit s'ils ont fait une erreur dans une entrée - ils devraient supprimer l'entrée puis créer une nouvelle entrée, au lieu de modifier l'entrée existante.

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

14
JeffH

Si le champ n'a pas de sens lorsqu'il n'est pas correct, ou où vous ne devez pas stocker les données, alors il est juste de les effacer. Des exemples sont des champs de confirmation de mot de passe ou des dates impossibles.

Si toutefois le champ contient des informations qui pourraient vraisemblablement être modifiées pour les corriger (comme un numéro de téléphone), il est préférable de conserver les données dans le champ et de permettre à vos clients de les modifier en place.

Une chose que vous ne devez absolument pas faire est d'effacer tous les champs si un champ échoue à la validation. Parfois, je l'ai vu lors de la soumission d'un formulaire avec captcha, et cela s'est toujours révélé incroyablement frustrant.

10
JohnGB

Cela dépend.

Laisse-moi expliquer.

Par exemple, il y a un tableau avec des dates et des informations de paiement comme dans votre application. Et les utilisateurs doivent le remplir et parfois ils doivent modifier les données entrées par une erreur ou quelque chose. À première vue, vous penserez peut-être que ce sera formidable de donner à l'utilisateur la possibilité de modifier les données sur place, mais ...

Il existe un autre type d'utilisateurs de votre système, des gens qui se trouvent de l'autre côté: les gestionnaires ou quoi que ce soit. Et ces personnes devraient traiter ces données. Et tout est OK jusqu'à ce que quelqu'un veuille modifier les anciennes données.

Voici donc le problème: les données vont dans le sens où les gestionnaires pourraient les récupérer une par une en haut de la file d'attente. Et que se passe-t-il avec les données modifiées? Doit-il apparaître en haut (et changer son ordre ou revenir plus tard, etc.) ou simplement être mis en évidence d'une manière ou d'une autre (alors, comment les gestionnaires remplissent-ils cela et procèdent-ils), etc.?

La seule solution sera de ne pas laisser les utilisateurs modifier les données, mais de les supprimer et de placer une nouvelle ligne qui apparaîtra du côté des gestionnaires (donc, la file d'attente sera la même, etc.).

Je veux dire, c'est une sorte de scénario imaginé, une illustration, mais je sais qu'il y a beaucoup de systèmes qui ne vous permettront pas de modifier vos données mais de les supprimer et de les ajouter à la place (Twitter). Et ce n'est qu'un compromis que nous devons faire pour garder nos systèmes tiles, utilisables et simples pour toutes sortes d'utilisateurs. Donc, en répondant à votre question, je pense qu'en fait cela dépend.

Dans votre cas, je pense que vous pouvez laisser vos utilisateurs modifier les dates sur place en affichant un sélecteur de date juste à côté de la cellule, etc.

2
alexeypegov

J'ai deux situations générales dans une application Web sur laquelle je travaille, où l'utilisateur doit ajouter des lignes de données dans une table. Dans le premier cas: lorsque l'utilisateur appuie sur le bouton add, une nouvelle ligne est ajoutée au tableau, lui permettant de saisir de nouvelles données sur place (généralement de nombreux champs) et de les modifier à nouveau si nécessaire (sans appuyer sur un bouton edit). Lorsque l'utilisateur a vérifié toutes les données, il peut appuyer sur un bouton save, qui enregistre ensuite la table entière. Dans ce cas, je préfère que l'ajout et les modifications soient effectués sur place.

Dans le deuxième cas, j'ai une table où l'on s'attend à ce que toutes les lignes soient enregistrées une par une dans la base de données: l'utilisateur clique sur add, remplit le formulaire et appuie sur enregistrer, puis clique à nouveau sur add si nécessaire, etc. Dans ce cas, lorsque l'utilisateur doit ajouter une nouvelle ligne ou en modifier une existante, je lui montre un formulaire modal avec tous les champs (généralement moins de 10).

Étant donné que dans votre cas, il n'y a que trois champs, je pense qu'il serait acceptable de demander à l'utilisateur de supprimer la ligne de données et de l'ajouter à nouveau: c'est parce que l'avantage de permettre à l'utilisateur de modifier peut ne pas valoir le codage supplémentaire nécessaire pour pour permettre la mise à jour des données.

Mais, si vous allez utiliser plusieurs boîtes de dialogue modales pour entrer des données dans d'autres formes de votre application, vous devez également considérer qu'il est généralement encouragé de le faire de la même manière sur différents formulaires, afin que les utilisateurs sentent que tous les formes sont cohérentes.

2
Roimer

Pourquoi ne pas avoir un bouton "modifier" à côté du bouton "supprimer"?

Le fait d'appuyer sur le bouton "modifier" pour une ligne particulière peut faire apparaître le modal contenant les données telles qu'elles ont été saisies, puis l'utilisateur effectue simplement les modifications nécessaires, puis enregistre, conformément à une nouvelle entrée. Semble l'approche la plus flexible, et elle ne nécessite aucun autre moyen de saisie des données que vous avez déjà (c'est-à-dire une fenêtre modale).

PS - Je suggérerais "enregistrer" plutôt que "enregistré" pour le bouton de la fenêtre modale. "Enregistré" est au passé (ou un adjectif?), Mais les données ne sont pas enregistrées tant que le bouton n'est pas utilisé (c'est-à-dire que l'action ou le verbe souhaité est "enregistrer").