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