Javascript Backspace未清除mozilla浏览器中的字段

Javascript Backspace未清除mozilla浏览器中的字段,javascript,jquery,html,Javascript,Jquery,Html,我有一个只允许数字的输入框。在chrome和firefox中,它只允许数字,但不能在mozilla中使用backspace删除数字 $(文档).ready(函数(){ $('#price')。按键(函数(事件){ if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which57)){ event.preventDefault(); } }); }); 通常keypress只检测可打印的按键,但当前版本的Mozilla也

我有一个只允许数字的输入框。在chrome和firefox中,它只允许数字,但不能在mozilla中使用backspace删除数字

$(文档).ready(函数(){
$('#price')。按键(函数(事件){
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});
});

通常
keypress
只检测可打印的按键,但当前版本的Mozilla也能够检测退格。改用
向下键
事件

演示

$(文档).ready(函数(){
$('#price').keydown(函数(事件){
console.log(event.which);
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
event.preventDefault();
}
});
});

发生这种情况是因为您使用了错误的方法来避免退格。有退格8作为键代码,因此您在“防止默认值”中避免了此问题。请改用此代码

$(document).ready(function () {
$('#price').keypress(function(event) {
        if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57) && event.which != 8) {
            event.preventDefault();
        }
    });
});
$(文档).ready(函数(){
$('#price')。按键(函数(事件){
if((event.which!=46 | | |$(this).val().indexOf('.')!=1)&&(event.which<48 | | event.which>57)&&event.which!=8){
event.preventDefault();
}
});
});

按键事件在firefox中不起作用。您可以使用
keyup
keydown
事件,它将起作用

$(document).ready(function () {
$('#price').keyup(function(event) {
        if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57) && event.which != 8) {
            event.preventDefault();
        }
    });
});
$(文档).ready(函数(){
$('#price').keyup(函数(事件){
if((event.which!=46 | | |$(this).val().indexOf('.')!=1)&&(event.which<48 | | event.which>57)&&event.which!=8){
event.preventDefault();
}
});
});

我认为这段代码对keycode==8有一些问题,请检查一下。@Vinoth我没有使用keypress事件,而是使用keydown。@gurvinder,在您使用keydown之前,现在您的答案与我的相同。@Vinoth我的答案与您的答案如何相同?尽管我的第二种方法使用了
keyup
,但
keyup
事件中的代码与您的完全不同。现在您的答案与我的基本相同。