Je dois définir quelque chose de similaire à cette regex:
[0-9]{1, 5}
Sur un élément PrimeFaces <inputMask>
:
<p:inputMask mask="regexGoesHere" value="#{someBean.val}"/>
J'ai regardé la vitrine de PrimeFaces, mais je ne savais pas comment le faire.
Alors, est-ce que quelqu'un sait comment le faire de quelque manière que ce soit en plus de JavaScript?
Je ne cherche pas exactement une solution avec <inputMask>
tout ce qui m'empêcherait de taper des lettres dans l'entrée du côté client est OK.
Merci
Si vous voulez ou devez limiter la longueur aussi, vous pouvez faire quelque chose comme ceci:
<p:inputMask
mask="9?9999"
maxlength="5"
slotChar=" "
value="#{someBean.val}" />
où l'utilisateur ne peut entrer qu'entre 1 et 5 chiffres, ou les suivants pour quatre chiffres, etc.
<p:inputMask
mask="9?999"
maxlength="4"
slotChar=" "
value="#{someBean.val}" />
Avant PrimeFaces 5.1: utilisez placeHolder
au lieu de slotChar
( Issue 7324 ).
Le Masked Input Plugin est le plugin jquery original utilisé par Primefaces. Vous y trouverez beaucoup plus d’informations sur son utilisation. Il existe également plusieurs exemples de code p: input-mask dans ce PDF PrimeFaces: Plus d’éléments d’entrée voir page 24
KeyFilter à partir de PrimeFaces Extensions ressemble exactement à ce dont vous avez besoin: http://fractalsoft.net/primeext-showcase-mojarra/views/keyFilter.jsf
Selon la documentation et les exemples, il est piloté par regexp et fonctionne exactement comme il se doit: bloquer la possibilité de taper quelque chose qui ne passe pas à regexp.
essayez juste ceci:
<p:inputMask maxlength="5">
<pe:keyFilter regEx="/[\d]/" />
</p:inputMask>
maxlength: limite le nombre de caractères à 5 max regEx: n'autorise que le caractère décimal lors de l'appui sur une touche
nb:
Vous pouvez utiliser un validateur. Ou validerange et définir un minimum et un maximum.