Javascript只允许在输入字段中使用退格和数字

Javascript只允许在输入字段中使用退格和数字,javascript,html,jquery,Javascript,Html,Jquery,我有下面的函数,当用户提供输入时,它只允许数字,排除所有其他内容。然而,这个函数也阻止了退格,我无法删除键入的数字 $(函数(){ “严格使用”; 主体变量=$(“主体”); 功能检查键(键){ 如果(键!=9&(键57)){ 返回false; } 返回true; } 函数goToNextInput(e){ var key=e.which, t=$(即目标值), sib=t.next(“输入”); 如果(键!=8&&(键96)!=true&&checkKey(键)==false){ e、 预防

我有下面的函数,当用户提供输入时,它只允许数字,排除所有其他内容。然而,这个函数也阻止了退格,我无法删除键入的数字

$(函数(){
“严格使用”;
主体变量=$(“主体”);
功能检查键(键){
如果(键!=9&(键<48 | |键>57)){
返回false;
}
返回true;
}
函数goToNextInput(e){
var key=e.which,
t=$(即目标值),
sib=t.next(“输入”);
如果(键!=8&&(键<106&&key>96)!=true&&checkKey(键)==false){
e、 预防默认值();
返回false;
}
如果(!sib | |!sib.length){
sib=body.find(“输入”).eq(0);
}
sib.select().focus();
}
函数onKeyDown(e){
var-key=e.which;
如果(键!=8&&(键<106&&key>96)!=true&&checkKey(键)==false){
e、 预防默认值();
返回false;
}
}
功能聚焦(e){
$(e.target).select();
}
body.on(“keyup”,“.otp字段”,goToNextInput);
body.on(“按键向下”,“.otp字段”,onKeyDown);
body.on(“单击“,”.otp字段),onFocus);
});
输入{
宽度:5雷姆;
文本对齐:居中;
}

您可以通过添加更多来实现。 下面我为异常添加了numpad键。 我创建了另一个函数只是为了检查键。 首先,我们在阻止默认操作之前检查一些异常

$(函数(){
“严格使用”;
主体变量=$(“主体”);
功能检查键(键){
如果(键!=9&(键<48 | |键>57)){
返回false;
}
返回true;
}
函数goToNextInput(e){
var key=e.which,
t=$(即目标值),
sib=t.next(“输入”);
如果(键!=8&&(键<106&&key>96)!=true&&checkKey(键)==false){
e、 预防默认值();
返回false;
}
如果(!sib | |!sib.length){
sib=body.find(“输入”).eq(0);
}
sib.select().focus();
}
函数onKeyDown(e){
var-key=e.which;
如果(键!=8&&(键<106&&key>96)!=true&&checkKey(键)==false){
e、 预防默认值();
返回false;
}
}
功能聚焦(e){
$(e.target).select();
}
body.on(“keyup”,“.otp字段”,goToNextInput);
body.on(“按键向下”,“.otp字段”,onKeyDown);
body.on(“单击“,”.otp字段),onFocus);
});


它正在工作,但按backspace键会跳到下一个字段。这里有4个字段。无论何时在一个字段上键入一个数字,它都会自动跳转到下一个字段上,因此函数在这里工作得很好,但按下backspace按钮时不应出现这种情况。应避免退格,并防止跳到下一个字段。你能修改它吗?对于我在前面的评论中提到的上述问题,我已经用代码片段和你的代码更新了这个问题。请看一看。我想它工作得很顺利。