Jsf 如何禁用Primefaces输入文本中的特殊字符和字母?
我想要一个Jsf 如何禁用Primefaces输入文本中的特殊字符和字母?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我想要一个,它只接受数字而不接受任何其他字符。用户是否可以只键入数字而禁用其他字符?如果是这样,请告诉我如何处理。最后,和组件将呈现一个HTML组件。您只需要应用JavaScript方法来限制文本中允许的字符 知道这一点,您可以使用问题中提供的任何方法。我将根据帖子的第二个答案向您展示一个示例: <h:head> <script type="text/javascript"> //<![CDATA[ var numericRe
,它只接受数字而不接受任何其他字符。用户是否可以只键入数字而禁用其他字符?如果是这样,请告诉我如何处理。最后,
和
组件将呈现一个
HTML组件。您只需要应用JavaScript方法来限制文本中允许的字符
知道这一点,您可以使用问题中提供的任何方法。我将根据帖子的第二个答案向您展示一个示例:
<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方法以定义不同的行为。@kolossus我需要一个
,它只接受数字而不接受任何其他字符,因此OP需要一种方法来验证客户端的输入:。实现这一点的唯一方法是使用JavaScript。我假设OP也会有一个服务器验证器,但这是不可能的。