Pas de valeur vide pour les champs ENUM ayant le rendering : Select with search / pill box

Bonjour,

Quand je crée un champ de type ENUM, non obligatoire, avec un Redering par defaut (vide), je peux ne pas choisir de valeur et le laisser vide sans problème.
image

Par contre, quand je décide de mettre son Rendering à “Select with search / pill box” pour avoir la fonctionnalité de recherche, je ne peux plus le laisser vide. Le champ prend automatiquement la première valeur de la liste si aucune valeur n’a été choisie.

Exemple :

Création d’un champ de type ENUM avec une liste de valeurs, non obligatoire, avec un Rendering “Select with search / pill box” :

image

Problème 1 : Valeur par défaut présélectionnée : Dame => première valeur de la liste

Problème 2 :

  1. On désélectionne Dame
  2. On enregistre le formulaire ==> l’enregistrement se fait correctement
  3. On entre à nouveau dans le formulaire de la ligne créée ==> on retrouve le champ présélectionné sachant qu’il n’a pas été sélectionné lors de la création

image

Est-ce un bug ?

Technical information

Version Simplicité
5.2.32

Merci pour vos retours,

Bonjour,

Ce composant est un select2. Il faut cliquer sur la petite croix pour effacer le champ, il n’y a pas d’option vide dans la liste.

Bonjour,

Merci pour votre retour.

J’ai trouvé une alternative pour afficher une valeur vide dans la liste :

Ajouter un nouvel élément dans la liste avec le code “NULL” et la valeur Alt+255 (caractère vide) et le mettre en premier de la liste.
image

Merci,

Mehdi.

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.

Bonjour,

Comme indiqué, pour vider un champ, il faut utiliser la croix (du select2).
Si vous souhaitez avoir une option/valeur vide, il faut rester en rendering simple (select natif) + champ facultatif.

  • Là vous allez stocker en base “NULL” et pas null, au pire il faur remplacer la valeur “NULL” par “” dans le preValidate.
  • Utiliser un caractère spécial n’est vraiment pas recommandé, car peut potentiellement nuire à tous vos import/exports de données, pb d’encoding, comparaison de “NULL” avec vide ou null, etc. La règle de Simplicité est de faire un trim sur les champs textuels, et je doute que Alt+255 en fasse partie : mettez à la rigueur un libellé explicite “(vide)” ou “(sans objet)” ou “(not defined)”…

Mais encore une fois, ce n’est pas la bonne approche que de créer une option vide, c’est le caractère “facultatif” et le rendering du champ qui gère cette option.

@MehdiBouali