Erreur de saisie sur un champ décimal avec une validation « Percent »

Tags: #<Tag:0x00007fdd4ef7cdc0>

Bonjour,

Nous avons un champ décimal qui représente un pourcentage. Nous lui avons donc mis le type de validation « Percent ». En V4 cela ne pose pas de pb, en revanche en V5, nous avons l’erreur suivante :
erreur taux pourcentage

Cette erreur disparaisse si je passe le champ en entier. Est-ce normal ?

Merci d’avance.

Abed.

De mémoire, un rendering pourcentage est géré comme suit :

  • si le champ est décimal, il doit être compris entre 0 et 1 (donc 5 c’est 500%, 0.5 c’est 50%)
  • si le champ est entier, il est entre 0 et 100, c’est la valeur du pourcentage directement

L’input contient l’entier ou le décimal “brut”, et la valeur rendue en pourcentage s’affiche à côté de l’input.

Votre copie d’écran ne semble pas être un rendering natif, mais un champ texte avec une regexp (qui ne comprend pas votre décimale). Vous utilisez quelle regexp ?

Vous pouvez avoir un champ décimal (c’est mieux qu’un texte) sans rendering ni regexp et gérer la plage de valeurs possibles dans le validate.

Merci @francois.

Voici la définition de l’attribut en question :

Voici une erreur quand j’essaie de saisir une valeur entre 0 et 1 :
erreur

Je rappelle que ce champ (décimal) et ce type de validation (percent) ne pose pas de pb en V4.

Quand l’utilisateur saisie 50.02 ceci représente pour nous 50.02%, un 20 c’est un 20%…

La regexp PRCENT est ^[0-9]$|^[0-9][0-9]$|100 si vous regardez dans Admin/Field type
donc est valide sur une valeur entière qui ne déborde pas de la plage 0…100.

Je vois pas comment ça a pu marcher en V4… cette regexp n’ayant pas changé.
c’est plutôt qu’elle ne devait pas être appliquée sur un champ décimal, et que maintenant elle l’est.
La regexp s’appliquait à du texte, on a du étendre son périmètre.

Vous devez créer votre regexp qui supporte vos valeurs, ou la retirer et coder le validate (plus simple quand on parle de plage, de décimaux…).