19

h:inputText数字のみを受け入れる必要がある JSFの値を確認する方法はありますか。Integerまたはを指定できることを意味しますfloat

12s3a562.675a5678s1268712haf.563345 またはその他の種類の値を入力すると、エラーが表示されます。 それ以外の場合は、受け入れて続行します。

4

11 に答える 11

23

<h:inputText onkeypress="if(event.which &lt; 48 || event.which &gt; 57) return false;"/>整数のみを受け入れたい場合は、これが近道です。

type="number"数字以外を入力することさえできないという利点があります

于 2014-06-02T11:33:53.180 に答える
6

これは私のために働いています

onkeypress="if( (event.which &lt; 48 || event.which &gt; 57) ) return false;"
于 2016-05-05T19:50:54.683 に答える
2

JS検証を使用できます

まず、入力を検証する JS 関数を定義する必要があります。

function validateInput(regexString) {
    var theEvent = window.event || event;
    var key = theEvent.keyCode || theEvent.which;
    if (key >= 46) {
        key = String.fromCharCode(key);
        var regex = new RegExp("^" + regexString + "$");
        if (!regex.test(key)) {
            theEvent.returnValue = false;
            if (theEvent.preventDefault) {
                theEvent.preventDefault();
            }
        }
    }
}

次に、h:input で onKeyPress イベントをキャプチャし、関数を呼び出します。

<h:inputText value="..." onKeyPress="validateInput('[0-9]*')/>

また、数字のみを入力できます。

他の正規表現を検証する必要がある場合は、この使用を他のケースに簡単に拡張できます。

これはキーを押した場合にのみ機能することに注意してください。他のユーザーイベントをキャプチャする場合は、適切なタグを使用してください。

乾杯

于 2013-10-09T10:36:28.240 に答える
-1

これを試して

<h:inputText>
   <f:validateRegex pattern="\d*(.\d+)?"/>
</h:inputText>
于 2015-04-30T04:45:54.603 に答える