2017-08-08 33 views
0

我要取消输入的所有按键,这里是我的代码如何取消输入中的键码退格键?

window.onkeypress = function(event) { 
 
    event.preventDefault(); 
 
    if (event.charCode && (event.charCode < 48 || event.charCode > 57 || event.charCode > 48)) { 
 
    return false; 
 
    } 
 
}
<input type="text" value="1" size="4" max="7" name="people-value" id="adults-value">

为什么退格仍然可以工作,这一点?我需要使用哪些更多事件?

回答

2

取决于浏览器,但通常情况下keypress事件会在按下某个键并且该键能够生成字符值时触发。

由于退格不会产生任何输出,因此不会触发按键事件。您可以使用​​事件。

window.onkeydown = function(event) { 
 
    event.preventDefault(); 
 
    console.log(event.charCode) 
 
    if (event.charCode && (event.charCode < 48 || event.charCode > 57 || event.charCode > 48)) { 
 
    return false; 
 
    } 
 
}
<input type="text" value="1" size="4" max="7" name="people-value" id="adults-value">

的jsfiddle演示:https://jsfiddle.net/L47k7uwx/1/