h:inputText
数字のみを受け入れる必要がある JSFの値を確認する方法はありますか。Integer
またはを指定できることを意味しますfloat
。
12s3a562.675
、 a5678s12
、 68712haf.563345
またはその他の種類の値を入力すると、エラーが表示されます。 それ以外の場合は、受け入れて続行します。
h:inputText
数字のみを受け入れる必要がある JSFの値を確認する方法はありますか。Integer
またはを指定できることを意味しますfloat
。
12s3a562.675
、 a5678s12
、 68712haf.563345
またはその他の種類の値を入力すると、エラーが表示されます。 それ以外の場合は、受け入れて続行します。
<h:inputText onkeypress="if(event.which < 48 || event.which > 57) return false;"/>
整数のみを受け入れたい場合は、これが近道です。
type="number"
数字以外を入力することさえできないという利点があります
これは私のために働いています
onkeypress="if( (event.which < 48 || event.which > 57) ) return false;"
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]*')/>
また、数字のみを入力できます。
他の正規表現を検証する必要がある場合は、この使用を他のケースに簡単に拡張できます。
これはキーを押した場合にのみ機能することに注意してください。他のユーザーイベントをキャプチャする場合は、適切なタグを使用してください。
乾杯
これを試して
<h:inputText>
<f:validateRegex pattern="\d*(.\d+)?"/>
</h:inputText>