Si dans un champ de type numérique, l’utilisateur saisit du texte puis enregistre. Puisque la saisie ne correspond pas au format attendu, la valeur est vidée. Ne devrions pas plutôt avoir une message d’erreur indiquant que ce n’est le format attendu?
En effet,l’utilisateur peut ne pas voir que le champ a été vidé, encore plus s’il fait “Enregistrer et fermer”.
Il devrait effectivement y avoir un message d’erreur bloquant dans tous les cas…
L’attribut est obligatoire ? S’il l’est le fait de le remettre à vide provoquera de toute façon un message d’erreur bloquant (sur le caractère obligatoire, pas sur le mauvais format), c’est un workaround en attendant.
Sinon dire que le champ est obligatoire ne change rien car il peut valoir “0”.
Après analyse, le formatage front (sur onchange) ignore les espaces et les caractères non numerics pour être permissif (sur les espaces milliers… )
Exemple
12 3 456, 789 : donnera 123456.789 dans le call ajax.
12 xy3 456,7abc89 : idem
du coup il n’y a jamais d’erreur sur un numeric, c’est comme si le champ était un
<input type="number">
mais avec la possibilité d’y faire des formules.
Mettre une erreur implique revenir en arrière sur la possibilité d’avoir une saisie “permissive auto-corrigée”. On ne fera donc rien sans mieux cadrer le point.