-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ETQ usager je ne veux pas pouvoir saisir un nombre invalide sans feedback #9516
ETQ usager je ne veux pas pouvoir saisir un nombre invalide sans feedback #9516
Conversation
a4a4639
to
255967d
Compare
255967d
to
416db5a
Compare
d86a375
to
b0c316b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
top.
si en plus, tu peux au passage changer la description du champ decimal :
Vous pouvez saisir jusqu’à 3 décimales après la virgule. Exemple: 3,14
par
Vous pouvez saisir jusqu’à 3 décimales après la virgule. Exemple: 3,141
tu serais mon héros
@@ -1 +1 @@ | |||
= @form.number_field(:value, input_opts(id: @champ.input_id, aria: { describedby: @champ.describedby_id }, step: :any, required: @champ.required?)) | |||
= @form.text_field(:value, input_opts(id: @champ.input_id, aria: { describedby: @champ.describedby_id }, required: @champ.required?, pattern: "-?[0-9]+([\.,][0-9]{1,3})?", inputmode: :decimal, data: { controller: 'format decimal-number-input', format: :decimal })) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
autoriser les espaces ? (mm chose pour les nombres entiers)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes je ferai ça dans une autre PR, ça touche à d'autres aspects: le formatteur JS et le backend qui doit les supprimer pour parser le string en nombre.
Au passage j'avais aussi passé du temps à essayer de cabler un truc plus général en guise de séparateur de milliers (pour accepter aussi les ,
et .
) mais ça mène très trop loin car ces caractères sont sont aussi possibles comme séparateur de décimales, et un usager peut saisir dans un format autre que la locale de son navigateur…
Les input=number n'ont pas de value lorsque la valeur saisie n'est pas un nombre. Par conséquent dans ces cas là, nous ne pouvions faire remonter au backend pour validation / enregistrement, et il n'y avait aucun feedback signalement l'erreur à l'usager. On les convertit en inputs texte, avec les adaptations nécessaires pour montrer le pavé numérique sur mobile, et un style correct.
b0c316b
to
e492c8a
Compare
Suspect IssuesThis pull request was deployed and Sentry observed the following issues:
Did you find this useful? React with a 👍 or 👎 |
Quand un usager remplissait une donnée invalide d'un champ nombre, l'autosave ne transmettrait pas la valeur au backend car le navigateur détecte la valeur comme invalide et on a aucun moyen de connaître la valeur saisie. On faisait un autosave d'un champ vide.
Cette PR :
type=number
par untype=text
avec unpattern
etinputmode
adaptés.
et,
(on continue d'ignorer les séparateurs de milliers)