JavaScript不适用于num lock number中两个以上的输入字段

JavaScript不适用于num lock number中两个以上的输入字段,javascript,jquery,Javascript,Jquery,我已经使用JavaScript进行了表单验证,我使用它只允许输入字段中键盘上的数字,包括top中的数字和num lock数字。但这个JavaScript只适用于第一个输入字段,但我有几个输入字段如何调整它 问题与键盘右侧的num lock数字有关。 在第二和第三输入中,num lock数字不起作用。如何解决 这是我的密码: $(文档).ready(函数(){ $(“#inp1”)。按键(功能(e){ if(e.which!=8&&e.which!=0&&String.fromCharCode(

我已经使用JavaScript进行了表单验证,我使用它只允许输入字段中键盘上的数字,包括top中的数字和num lock数字。但这个JavaScript只适用于第一个输入字段,但我有几个输入字段如何调整它

问题与键盘右侧的num lock数字有关。

在第二和第三输入中,num lock数字不起作用。如何解决

这是我的密码:

$(文档).ready(函数(){
$(“#inp1”)。按键(功能(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<48 | e.which>57)){
$(“#errmsg1”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp2”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<48 | e.which>57)){
$(“#errmsg2”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp3”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<48 | e.which>57)){
$(“#errmsg3”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
});
#errmsg{
颜色:红色;
}
#errmsg2{
颜色:蓝色;
}
#errmsg3{
颜色:绿色;
}

编号:

编号:


编号:

您对第一个按键使用了
keypress
,但对其他按键使用了
keydown
。如果您将第二个和第三个也更改为
按键
,您的问题将得到解决。您也可以基本上像这样优化代码,而无需更改太多内容。但是有更好的方法来优化

原版 在你说我需要使用这两个事件之后,我添加了这个

按键事件对
A
A
的处理方式不同,而按键向下只查找按下的按钮,对
A
A
的处理方式相同。你所需要的就是改变 按键事件中的
(e.which<48 | e.which>57)
(e.which<96 | e.which>105)

$(文档).ready(函数(){
$(“#inp1”)。按键(功能(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<48 | e.which>57)){
$(“#errmsg1”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp2”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<96|e.which>105)){
$(“#errmsg2”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp3”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<96|e.which>105)){
$(“#errmsg3”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
});
#errmsg{
颜色:红色;
}
#errmsg2{
颜色:蓝色;
}
#errmsg3{
颜色:绿色;
}

编号:

编号:


编号:

您对第一个按键使用了
keypress
,但对其他按键使用了
keydown
。如果您将第二个和第三个也更改为
按键
,您的问题将得到解决。您也可以基本上像这样优化代码,而无需更改太多内容。但是有更好的方法来优化

原版 在你说我需要使用这两个事件之后,我添加了这个

按键事件对
A
A
的处理方式不同,而按键向下只查找按下的按钮,对
A
A
的处理方式相同。你所需要的就是改变 按键事件中的
(e.which<48 | e.which>57)
(e.which<96 | e.which>105)

$(文档).ready(函数(){
$(“#inp1”)。按键(功能(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<48 | e.which>57)){
$(“#errmsg1”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp2”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<96|e.which>105)){
$(“#errmsg2”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
$(“#inp3”).keydown(函数(e){
if(e.which!=8&&e.which!=0&&String.fromCharCode(e.which)!='-'&&(e.which<96|e.which>105)){
$(“#errmsg3”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});
});
#errmsg{
颜色:红色;
}
#errmsg2{
颜色:蓝色;
}
#errmsg3{
颜色:绿色;
}

编号:

编号:


号码:

我想这会对你有所帮助。这是用于键控事件的

 $("#inp3").keydown(function (e) {         
       let code = e.keyCode - 48 * Math.floor(e.keyCode / 48);
       if (code != 8 && code != 0 && String.fromCharCode(code) != '-' && (code < 48 || code > 57)) {
            $("#errmsg3").html("* Input digits (0 - 9)").show().delay(2000).fadeOut("slow");
            return false;
       }
 });  
$(“#inp3”).keydown(函数(e){
设code=e.keyCode-48*数学楼层(e.keyCode/48);
if(code!=8&&code!=0&&String.fromCharCode(code)!='-'&&(code<48 | | code>57)){
$(“#errmsg3”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});  

我认为这将对您有所帮助。这是用于键控事件的

 $("#inp3").keydown(function (e) {         
       let code = e.keyCode - 48 * Math.floor(e.keyCode / 48);
       if (code != 8 && code != 0 && String.fromCharCode(code) != '-' && (code < 48 || code > 57)) {
            $("#errmsg3").html("* Input digits (0 - 9)").show().delay(2000).fadeOut("slow");
            return false;
       }
 });  
$(“#inp3”).keydown(函数(e){
设code=e.keyCode-48*数学楼层(e.keyCode/48);
if(code!=8&&code!=0&&String.fromCharCode(code)!='-'&&(code<48 | | code>57)){
$(“#errmsg3”).html(“*输入数字(0-9)”).show().delay(2000).淡出(“慢”);
返回false;
}
});  

这应该是一个注释,但同时也是答案。否。答案是解释问题和解决方案的东西。这是一个建议,避免在评论中回答问题