私はこの正規表現に似たものを定義する必要があります:
[0-9]{1, 5}
PrimeFaces <inputMask>
要素:
<p:inputMask mask="regexGoesHere" value="#{someBean.val}"/>
PrimeFacesのショーケースを見たが、どうすればいいのかわからなかった。
それで、JavaScript以外の方法でそれを行う方法を誰かが知っていますか?
クライアント側の入力に文字を入力することを制限する<inputMask>
を使用した解決策を正確に探していませんが、問題はありません。
ありがとう
長さを制限したい、または制限する必要がある場合は、次のようにすることができます。
<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 )。
次の マスクされた入力プラグイン は、Primefacesで使用されている元のjqueryプラグインであり、その使用方法に関する詳細情報を見つけることができます。また、このPDF PrimeFaces:More Input Elements 24ページを参照
KeyFilterfromPrimeFaces Extensionsは、必要なものとまったく同じように見えます: http://fractalsoft.net/primeext-showcase -mojarra/views/keyFilter.jsf
ドキュメンテーションと例によれば、それは正規表現によって駆動され、本来のとおりに機能します。正規表現に渡さない何かを入力する機能をブロックします。
これを試してください:
<p:inputMask maxlength="5">
<pe:keyFilter regEx="/[\d]/" />
</p:inputMask>
maxlength:文字数を5に制限します。最大regEx:キーを押したときに10進文字のみを認証します
nb:
バリデーターを使用できます。または、validaterangeを使用して、最小値と最大値を定義します。