【问题标题】:How can I enter only numbers in TextBox using JavaScript without disable right click? [closed]如何在不禁用右键单击的情况下使用 JavaScript 在 TextBox 中仅输入数字? [关闭]
【发布时间】:2011-02-25 21:32:01
【问题描述】:

我想只允许文本框使用数字,我已经通过仅允许数字和防止 ctrl+V 来做到onkeydown 事件,但我有两个问题:

  1. 如果我右键单击然后粘贴,以便可以输入任何字符,我想要一个解决方案而不禁用oncontextmenu="return false;"的右键单击

  2. 如果我拖放任何文本,它将被输入

有没有可以在所有浏览器中正常运行的解决方案?

【问题讨论】:

    标签: javascript asp.net validation dom-events


    【解决方案1】:

    只需过滤掉文本框 onchange 事件中的非数字字符并将其设置回文本框即可。

    【讨论】:

    • 这将允许输入任何字符作为文本框失去焦点后触发的更改事件......我需要的是不允许用户输入除数字以外的其他内容
    【解决方案2】:

    您可以使用onpaste 事件。每当粘贴某些内容时,您都可以捕捉到。
    onpaste事件可以参考Andy's answer

    【讨论】:

    • 在这种情况下,您必须像 Ovidiu 所说的那样处理 onchange 事件。
    【解决方案3】:

    我最近为此使用了 jquery。这是代码。在您的 html 中包含您的 jquery 文件。

    <script type="text/javascript" src="js/vendor/jquery.validate.min.js"></script>
    

    在您的 html 中包含此脚本。

    <script>
    $('#phoneNum').keypress(function(e) {
        var a = [];
        var k = e.which;
    
        for (i = 48; i < 58; i++)
            a.push(i);
    
        if (!(a.indexOf(k)>=0))
        {
            if(k != 45){
                e.preventDefault();
            }
        }
    });
    </script>
    

    这就是您输入的内容。 phoneNume 是 id。

    <input type="tel" id="phoneNum" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多