Saisie d'un mauvais format

Bonjour,

Simplicité version4.0 patch level P23 (database patch level P23)Built on2019-07-08 21:54 (revision 9610187d6d6bd3925c2b11fcc2c34bde2ed09f85)

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.

On l’a remarqué sur des champs non obligatoires car en effet quand ils le sont ils seront bloqués par ce caractère obligatoire

Le champ est converti en “0” sur la UI avant d’être envoyé au serveur, donc il n’y a pas d’erreur utilisateur.

La raison est qu’on peut saisir une formule textuelle commençant par “=” (syntaxe javascript donc possibilité d’utiliser Math…) exemple =2*3+12

Je pense que le problème est que si l’eval plante ça met 0 dans le champ lors du “onchange” avant le save.

On va essayer de laisser la “mauvaise” valeur en cas de problème d’expression, avec un message d’erreur UI avant envoi en back.

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.