<p:inputText>
数字のみを受け入れ、他の文字は受け入れない が必要です。ユーザーが数字のみを入力でき、他の文字が無効になるようにすることは可能ですか? もしそうなら、私にその方法を教えてください。
質問する
4649 次
1 に答える
4
最終的に、<h:inputText>
andコンポーネントはHTML コンポーネント<p:inputText>
をレンダリングします。<input type="text" />
必要なのは、JavaScript メソッドを適用して、テキストで許可される文字を制限することだけです。
これを知っていれば、質問HTML Text Input allow only Numeric inputで提供されている方法のいずれかを使用できます。投稿の2番目の回答に基づいた例を示します。
<h:head>
<script type="text/javascript">
//<![CDATA[
var numericRegex = /\d+\.?\d*/;
function validateNumericInput(evt, text) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
if (key === '.') {
theEvent.returnValue = (text.indexOf(key) < 0);
} else {
var regex = /\d/;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
}
//]]>
</script>
</h:head>
<h:body>
Try to write a non-numeric
<p:inputText onkeypress="validateNumericInput(event, this.text)" />
</h:body>
この例では、正の実数しか記述できないことに注意してください。JavaScript メソッドを変更して、別の動作を定義するだけです。
于 2013-01-30T04:16:06.570 に答える