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也会有一个服务器验证器,但这是不可能的。