如何在不禁用右键单击的情况下使用JavaScript在TextBox中仅输入数字?

时间:2010-05-31 07:59:03

标签: asp.net javascript-events validation

我想只允许数字被允许用于文本框而且我已经通过仅允许数字并且阻止ctrl + V来执行onkeydown事件但是我有两个问题:

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

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

  3. 是否有任何解决方案可以在所有浏览器中正常运行?

3 个答案:

答案 0 :(得分:1)

只需过滤掉文本框onchange事件中的非数字字符,然后将其设置回文本框。

答案 1 :(得分:0)

您可以使用onpaste事件。无论什么时候贴上东西,你都可以抓住 您可以参考有关onpaste事件的Andy's answer

答案 2 :(得分:0)

我最近使用了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" />