我想要一个<p:inputText>
,它只接受数字,而不是任何其他字符。是否可以使用户只能键入数字而其他字符被禁用?如果是这样,请告诉我如何。
答案 0 :(得分:3)
最后,<h:inputText>
和<p:inputText>
组件将呈现<input type="text" />
HTML组件。您唯一需要的是应用JavaScript方法来限制文本中允许的字符。
了解这一点,您可以使用问题HTML Text Input allow only Numeric input中提供的任何方法。我将根据帖子的第二个答案向您展示一个例子:
<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方法即可定义不同的行为。