Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript在文本框中仅输入数字而不禁用右键单击?_Javascript_Asp.net_Validation_Dom Events - Fatal编程技术网

如何使用JavaScript在文本框中仅输入数字而不禁用右键单击?

如何使用JavaScript在文本框中仅输入数字而不禁用右键单击?,javascript,asp.net,validation,dom-events,Javascript,Asp.net,Validation,Dom Events,我想只允许文本框使用数字,我已经通过只允许数字和防止ctrl+V来执行了onkeydown事件,但我有两个问题: 如果我右键单击,然后粘贴,这样就可以输入任何字符,并且我希望通过oncontextmenu=“return false;”“ 如果我拖放任何文本,它将被输入 是否有任何解决方案可以在所有浏览器中正常工作?只需过滤掉文本框的onchange事件中的非数字字符,并将其设置回文本框。您可以使用onpaste事件。无论何时粘贴内容,您都可以捕获。 您可以参考关于onpaste事件。我最近为此

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

  • 如果我右键单击,然后粘贴,这样就可以输入任何字符,并且我希望通过
    oncontextmenu=“return false;”“

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


  • 是否有任何解决方案可以在所有浏览器中正常工作?

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

    您可以使用
    onpaste
    事件。无论何时粘贴内容,您都可以捕获。

    您可以参考关于
    onpaste
    事件。

    我最近为此使用了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>
    
    
    $('#phoneNum')。按键(功能(e){
    var a=[];
    var k=e,其中;
    对于(i=48;i<58;i++)
    a、 推(i);
    如果(!(a.indexOf(k)>=0))
    {
    如果(k!=45){
    e、 预防默认值();
    }
    }
    });
    
    这就是您输入的内容。作为id的音素

    <input type="tel" id="phoneNum" />
    
    
    
    这将允许在文本框失去焦点后输入任何char as change事件。。。我需要的是不允许用户输入数字以外的内容。在这种情况下,您必须像Ovidiu所说的那样处理onchange事件。