web-dev-qa-db-ja.com

PrimeFaces inputMask要素のみを使用して、入力を可変量の数値に制限する方法

私はこの正規表現に似たものを定義する必要があります:

[0-9]{1, 5}

PrimeFaces <inputMask>要素:

<p:inputMask mask="regexGoesHere" value="#{someBean.val}"/>

PrimeFacesのショーケースを見たが、どうすればいいのかわからなかった。

それで、JavaScript以外の方法でそれを行う方法を誰かが知っていますか?

クライアント側の入力に文字を入力することを制限する<inputMask>を使用した解決策を正確に探していませんが、問題はありません。

ありがとう

11
Simeon

長さを制限したい、または制限する必要がある場合は、次のようにすることができます。

<p:inputMask 
   mask="9?9999"
   maxlength="5"
   slotChar=" "
   value="#{someBean.val}" />

ユーザーが入力できるのは1から5桁のみ、または4桁の場合は以下のように入力します。

<p:inputMask 
   mask="9?999"
   maxlength="4"
   slotChar=" "
   value="#{someBean.val}" />

PrimeFaces 5.1より前placeHolderの代わりにslotCharを使用します( Issue 7324 )。

28
Nublodeveloper

次の マスクされた入力プラグイン は、Primefacesで使用されている元のjqueryプラグインであり、その使用方法に関する詳細情報を見つけることができます。また、このPDF PrimeFaces:More Input Elements 24ページを参照

6
Daniel

KeyFilterfromPrimeFaces Extensionsは、必要なものとまったく同じように見えます: http://fractalsoft.net/primeext-showcase -mojarra/views/keyFilter.jsf

ドキュメンテーションと例によれば、それは正規表現によって駆動され、本来のとおりに機能します。正規表現に渡さない何かを入力する機能をブロックします。

3
Danubian Sailor

これを試してください:

<p:inputMask maxlength="5">
        <pe:keyFilter regEx="/[\d]/" />
</p:inputMask>

maxlength:文字数を5に制限します。最大regEx:キーを押したときに10進文字のみを認証します

nb:

1

バリデーターを使用できます。または、validaterangeを使用して、最小値と最大値を定義します。

0
roel