我试图不使用正则表达式将文本框输入限制为仅0-9的数字。而且,下面是我的代码:
$("input[type='text']").on('keypress', function(e){
if(e.which>=48 && e.which<58){
return true;
}else{
return false;
}
})
<input type="text">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我的问题是:“在这种情况下,为什么只有keypress阻止输入特殊字符?”
keypress
没有返回相同的键码。例如,如果将console.log(e.which)
添加到该功能并按Backspace键,则不会触发任何事件。但是,如果您按另一个键,它将。另外,按键会检测“ shift +数字”组合作为奇数键码,因此它们在您的函数中返回false。例如,“ shift + 1”返回33,但33应该表示“向上翻页”。