【问题标题】:How to disable special characters and alphabets in Primefaces input text?如何禁用 Primefaces 输入文本中的特殊字符和字母?
【发布时间】:2013-01-30 03:46:42
【问题描述】:

我想要一个<p:inputText>,它应该只接受数字而不是任何其他字符。是否有可能让用户只能输入数字而其他字符被禁用?如果是这样,请告诉我怎么做。

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    最后,<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 方法以定义不同的行为。

    【讨论】:

    • @kolossus 我想要一个 &lt;p:inputText&gt;,它应该只接受数字而不是任何其他字符,所以 OP 需要一种方法来验证客户端的输入:。唯一的方法是使用 JavaScript。我认为 OP 也会有一个服务器验证器,但这不在问题范围内。
    猜你喜欢
    • 2013-06-20
    • 2015-09-13
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 2020-10-30
    • 1970-01-01
    相关资源
    最近更新 更多