Javascript eventListener按键对<;输入>;
我知道在Javascript eventListener按键对<;输入>;,javascript,html,listeners,Javascript,Html,Listeners,我知道在输入的元素中使用按键事件监听器进行按键纯粹是疯狂。但我个人希望自己明白在这种情况下我做错了什么 该代码的目标是只允许在输入字段中显示数字,禁止出现字母以及使用键盘组合(alt、shift等) 函数onDown(e){ e=e | |事件; 如果(e.ctrlKey | | e.altKey | | e.metaKey)返回;//对于密钥组合为false var chr=getChar(e); if(chr==null)返回; if(chr'9'){//if“chr”不是数字-false
输入的元素中使用按键事件监听器
进行按键纯粹是疯狂。但我个人希望自己明白在这种情况下我做错了什么
该代码的目标是只允许在输入字段中显示数字,禁止出现字母以及使用键盘组合(alt、shift等)
函数onDown(e){
e=e | |事件;
如果(e.ctrlKey | | e.altKey | | e.metaKey)返回;//对于密钥组合为false
var chr=getChar(e);
if(chr==null)返回;
if(chr<'0'| | chr>'9'){//if“chr”不是数字-false
返回false;
}
}
函数getChar(event){//支持func从keyCode获取字符
如果(event.which==null){
if(event.keyCode<32)返回null;
返回字符串.fromCharCode(event.keyCode)
}
如果(event.which!=0&&event.charCode!=0){
if(event.which<32)返回null;
返回字符串.fromCharCode(event.which);
}
返回null;
}
输入加法器列表器('keypress',onDown)代码>
您需要调用e.preventDefault()代码>当输入的值不是数字时
函数onDown(e){
e=e | |事件;
如果(e.ctrlKey | | e.altKey | | e.metaKey)返回;//对于密钥组合为false
var chr=getChar(e);
if(chr==null)返回;
if(chr<'0'| | chr>'9'){//if“chr”不是数字-false
e、 预防默认值();
}
}
函数getChar(event){//支持func从keyCode获取字符
if(event.which==null){
if(event.keyCode<32)返回null;
返回字符串.fromCharCode(event.keyCode)
}
if(event.which!=0&&event.charCode!=0){
if(event.which<32)返回null;
返回字符串.fromCharCode(event.which);
}
返回null;
}
输入添加的监听器(“按键”,onDown)代码>
您需要调用e.preventDefault()代码>当输入的值不是数字时
函数onDown(e){
e=e | |事件;
如果(e.ctrlKey | | e.altKey | | e.metaKey)返回;//对于密钥组合为false
var chr=getChar(e);
if(chr==null)返回;
if(chr<'0'| | chr>'9'){//if“chr”不是数字-false
e、 预防默认值();
}
}
函数getChar(event){//支持func从keyCode获取字符
if(event.which==null){
if(event.keyCode<32)返回null;
返回字符串.fromCharCode(event.keyCode)
}
if(event.which!=0&&event.charCode!=0){
if(event.which<32)返回null;
返回字符串.fromCharCode(event.which);
}
返回null;
}
输入添加的监听器(“按键”,onDown)代码>
您不需要getChar
方法,因为事件已经具有键
属性
函数为数字(n){
return!isNaN(parseFloat(n))和&isFinite(n);
}
函数onDown(e){
e=e | |事件;
如果(e.ctrlKey | | e.altKey | | e.metaKey | | e.shift)返回;//对于键组合为false
如果(!isNumeric(e.key))e.preventDefault();
}
输入加法器列表器('keypress',onDown)代码>
您不需要getChar
方法,因为事件已经具有键
属性
函数为数字(n){
return!isNaN(parseFloat(n))和&isFinite(n);
}
函数onDown(e){
e=e | |事件;
如果(e.ctrlKey | | e.altKey | | e.metaKey | | e.shift)返回;//对于键组合为false
如果(!isNumeric(e.key))e.preventDefault();
}
输入加法器列表器('keypress',onDown)代码>
使用返回false
或e.preventDefault()
。使用返回false
或e.preventDefault()
。