【问题标题】:javascript: ignoring invalid input as user types or changes text box value [duplicate]javascript:在用户键入或更改文本框值时忽略无效输入[重复]
【发布时间】:2012-12-05 13:27:08
【问题描述】:

可能重复:
How to allow only numeric (0-9) in HTML inputbox using jQuery?

当用户在文本框中输入内容时,如何限制用户输入?

例如,我只想接受一个数字,并且只要输入非数字字符,我就想忽略用户输入。 所以,

  1. 如果用户输入无效字符,我需要保留现有值
  2. 它应该能够处理任何其他输入更改情况(即键入、复制粘贴等)。

谢谢!!! 罗伯特

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用表单的onsubmit 事件在 javascript 中验证表单:

    <form enctype="application/x-www-form-urlencoded" method="post" onsubmit="validate(this);">
        <input type="text" name="number" />
        <input type="submit" name="submit" value="send" />
    </form>
    

    那么剩下的就是验证了:

    function validate(form) {
        if(isNaN(form.number.value)) {
            alert('not a number!');
    
            return false;
        }
    }
    

    问题是,javascript 在客户端运行。这意味着人们可以轻松绕过这一点,因此您必须以任何一种方式检查服务器端。

    如果您确定您的受众使用现代浏览器,您也可以使用 HTML5 元素 &lt;input type="number" /&gt;。但话又说回来,这是客户端,您必须检查服务器端。

    【讨论】:

      【解决方案2】:

      在文本框上使用 onKeyPress() 事件获取用户输入并根据需要进行相应处理。

      要处理复制 + 粘贴场景,您可以通过 onChange() 事件处理来处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-04
        • 1970-01-01
        • 2015-02-01
        • 2014-08-03
        • 2019-02-16
        • 2011-09-24
        • 2020-11-29
        • 1970-01-01
        相关资源
        最近更新 更多