Champ numérique dans formulaire

Bonjour,

Le développeur de module a la classe Template à sa disposition pour mettre des champs dans ses formulaires. Parmi ces champs il y a select, text, textarea et bien d'autres. Mais il n'y a pas de champ numérique, serait-il possible de l'ajouter dans la classe ? Cet ajout permettrait de mieux cibler et préciser certaines valeurs, par exemple pour définir la largeur d'un élément : valeur libre, non limité à certaines valeurs imposées, en plus le non mélange avec des lettres (px, pixels ... ) et des signes (%) éviterait des erreurs de saisie.

Merci pour votre écoute.

Jean-Luc

Commentaires

  • fredfred Messages 2,098Administrateur

    Bonjour,

    On pourrait imaginer de créer un template qui utilise les attributs spécifiques aux valeurs numériques reconnus par le type :

    <input type="number">

    Les attributs admis sont :

    • step
    • min et max
    • required
    • pattern (pour une expression régulière, très intéressant)

    Dans ce cas, le contrôle de validité est réalisé par le navigateur.

    Mais il y a d'autres voies :

    • contrôle par un script sur un événement.
    • contrôle par php en réception de formulaire avec déclenchement d'un message d'erreur. Exemple la méthode add dans le script core\module\user\user.php

    Bonne journée

    The f....g boss
  • jeanlucjeanluc Messages 51Membre

    Bonjour @fred,

    Je vote pour la première solution, créer un template qui utilise les attributs spécifiques aux valeurs numériques, car c'est une solution "native html" .

    Un script sur événement ou un controle avec php serait un palliatif ( Dans mon temps on aurait dit : un workarround) en attendant la vraie solution.

    Merci pour tes actions.

    Jean-Luc

  • fredfred Messages 2,098Administrateur
    21 janv. modifié

    Bonsoir,

    La nouvelle méthode number() est implémentée dans la branche 13600 à télécharger sur la forge sous ce lien.

    Le détail des modifications est détaillé ici. La documentation de la méthode a été détaillée.

    La feuille de style du thème de l'administration doit être rechargée soit en la réinitialisant depuis l'interface, soit en effaçant le fichier admin.css dans le dossier site/data.

    La propriété pattern est particulièrement intéressante pour valider par exemple une liste de valeurs possibles.

    Bonne implémentation.

    Fred

    edit 1 : l'attribut required a été ajouté dans le commit suivant.

    edit 2 : dans la configuration, onglet réseau, le champ de saisie du port SMTP prend le type number sans option, saisie libre.

    The f....g boss
  • jeanlucjeanluc Messages 51Membre

    Bonjour,

    Merci.

    Version récupérée, installée. En cours de test.

    Jean-Luc

  • jeanlucjeanluc Messages 51Membre

    Bonsoir,

    J'ai testé pour l'usage que j'en ai. Cela répond à ma demande, c'est Ok et sans ambiguïté lors de la saisie ( message si la saisie est alphanumérique).

    Il pourrait aussi être utilisé pour la saisie de la largeur du site dans thème-site.

    Merci pour cette implémentation.

    Jean-Luc

Connectez-vous ou Inscrivez-vous pour répondre.