2016-08-24 7 views
3

私はPrimefacesを使って小さなプロジェクトに取り組んでいます。Primefaces InputMaskオプションの数字

私はこの40;99;1;0;0;12 これらは;で区切ら6つの異なる数であり、彼らは0-99の間の範囲を持っているように見える私のデータベース内の文字列を格納する特殊な形成 と私のデータベースから値を表示しようとしています。

この値をInputMaskに表示して、ユーザが;を忘れていないことを確認します。 フォーマットに問題があります。

私はマスクが数字入力のための6つの「フィールド」が含まれ、各フィールドは、1から99までの数字を含めることができると言うしようとしているこの

<p:inputMask id="myID" placeholder="Value" value="#{myClass.value}" mask="9?9;99;99;99;99;99"/>

を使用しています。

問題は、この30;10;0_;0_;0_;4_ Primefacesが30;10;00;04;__;_

に変換して、ユーザーが入力を書き込むとマスクが、それは、1つのまたは2桁の番号にすることができていることを知らせるための良い方法はありますか? それとも言うための方法は、入力がちょうど一桁が0最初

+1

の間でされていないの、あなたが定義することができ、検証すること、しかし欠点を持っています'しかし、正しく表示されないプライムフェイスでは。それはそれを理解しません。 – Apostolos

答えて

1

を入れている場合、私はこのソリューションは、あなたのニーズに合った場合は知らないが、あなたはカスタムマスクをあなたのdocument.ready

$.mask.definitions['h'] = "[0-9]{0,1}"; 
$("#form\\:your_input_mask_id").mask("hh;hh;hh;hh;hh;hh"); 

を定義することができ、そこにあります関数。これは_の文字をそのまま残しますが、文字列を分割して各部分を処理するときにコード内で処理できると思います。私はフォーム\を入れました:一般的に、これらの入力はidフォームの中に入れます。それに応じて変更!

これは、あなたが何かを入力していけない場合、それはまた、[9] `関わらず、同じ構文を使用してjQueryプラグインで1〜99

+0

あなたの答えをありがとう。私はこれを試みたが、うまくいかなかった。私はそれが要素を見つけることができないと思う。 $( "#myForm:myElementID")。マスク( "hh; hh; hh; hh; hh; hh"); – TheNewby

+0

あなたのHTMLコードをチェックして、あなたの要素が正しいidを持っていることを確認し、このjavascriptが実際に例外なく実行されていることを確認してください。 idが "エスケープ"され、理解されるためには、:の前に\が必要であることにも注意してください。 – Apostolos

+0

もう一度。私はそれがパネルとペネグリッドの中にあると言うのを忘れてしまった。私はテーマにもIDを付ける必要があり、どうすればそれらを呼び出すことができますか? – TheNewby