web-dev-qa-db-fra.com

Limitation ou correction automatique des valeurs des champs de saisie numériques

L'interface d'application sur laquelle je travaille a un curseur pour sélectionner un nombre, mais propose un champ de saisie de texte à côté de lui. Cela vous permet de lire la valeur actuellement sélectionnée, mais prend également en charge la saisie au clavier, comme alternative. Les curseurs ont des limites de plage qui sont renforcées par la plage de curseur lors du déplacement du curseur, mais validées séparément une fois que l'utilisateur a brouillé le champ de saisie, s'il utilise la saisie au clavier.

La chose avec laquelle je me bats est une fonctionnalité pour corriger automatiquement la saisie du nombre pendant que l'utilisateur tape. Ce n'est pas absolument nécessaire, mais avec le curseur modifiant de manière interactive certains résultats, il serait agréable d'avoir constamment une valeur valide.

Avec des nombres supérieurs à la limite maximale, il est assez facile de simplement réinitialiser le nombre au maximum. Cependant, lorsqu'il existe une limite minimale, cette correction automatique devient plus difficile à gérer:

Imaginez que la limite serait 0-145. L'utilisateur commence à taper 2, puis 1. Jusqu'ici tout va bien. Suit ensuite l'entrée 5 et le nombre 215 étant supérieur à 145, l'entrée et le curseur sont réinitialisés sur 145.

Mais si la limite était 15-145: Tout nombre que l'utilisateur saisit commencera par un seul chiffre et sera donc inférieur à la limite minimale de 15. Quelles sont les options possibles pour y faire face?

6
kontur

Si vous modifiez automatiquement une entrée de texte, l'utilisateur peut ne pas remarquer qu'elle a été modifiée. Cela conduira à un décalage entre ce qu'ils attendent et ce qui se passe.

Je peux voir deux solutions possibles à cela:

  1. Autorisez uniquement la modification de la valeur avec le curseur et faites du champ de saisie un champ en lecture seule. C'est le plus simple à faire, et je crois que le plus simple pour les utilisateurs.
  2. Si vous avez vraiment besoin de saisie de texte, vous devez le valider et s'il ne s'agit pas d'un nombre valide, vous devez en informer l'utilisateur d'une manière ou d'une autre et expliquer quelles sont les valeurs valides. S'il y a un bouton Soumettre ou similaire, validez quand il est sélectionné. Sinon, validez quand il y a:
    a) un changement d'orientation
    b) aucune activité pendant un certain temps (généralement 0,5 à 1,0 seconde suffit)
5
JohnGB

Vous pouvez valider la saisie utilisateur dès que l'utilisateur quitte le focus à partir du champ de saisie de texte.

Si elle est inférieure à votre limite minimale, vous pouvez la corriger automatiquement jusqu'à la limite minimale et la transmettre à l'utilisateur via du texte ou une zone d'alerte en surbrillance.

1
000