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?
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:
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.