Javascript 按键功能

Javascript 按键功能,javascript,jquery,cross-browser,compatibility,Javascript,Jquery,Cross Browser,Compatibility,我有一个名为format()的函数。此函数对我的输入进行格式化。在谷歌浏览器中,chrome非常完美,但在firefox上,当我试图使用“退格”键删除输入时,我遇到了一个问题 $('#valueInput')。按键(函数(事件){ 让key=event.keyCode | | event.which; 如果((键!=46 | |(键==46&&$(this.val()=='')|| $(this.val().toString().indexOf('.')!=-1)&& (钥匙57)|| $(t

我有一个名为format()的函数。此函数对我的输入进行格式化。在谷歌浏览器中,chrome非常完美,但在firefox上,当我试图使用“退格”键删除输入时,我遇到了一个问题

$('#valueInput')。按键(函数(事件){
让key=event.keyCode | | event.which;
如果((键!=46 | |(键==46&&$(this.val()=='')||
$(this.val().toString().indexOf('.')!=-1)&&
(钥匙<48 | |钥匙>57)||
$(this.val().toString().indexOf('.')!=-1&&
$(this.val().toString().split('.')[1]。长度>=8){
event.preventDefault();
}
}).on('paste',函数(事件){
event.preventDefault();
});

在代码中添加此行:

if(key == 32) {
    $(this).val($(this).val().substring(0, $(this).val().length - 1));
}
您的代码如下所示:

    $('#valueInput').keypress(function(event) {
      let key = event.keyCode || event.which;  
      if (((key != 46 || (key == 46 && $(this).val() == '')) ||
      $(this).val().toString().indexOf('.') != -1) &&
      (key < 48 || key > 57) ||
       $(this).val().toString().indexOf('.') != -1 &&
       $(this).val().toString().split('.')[1].length >= 8) {
           if(key == 32) {
               $(this).val($(this).val().substring(0, $(this).val().length - 1));
           }
           event.preventDefault();
  }
}).on('paste', function(event) {
  event.preventDefault();
});
$('#valueInput')。按键(函数(事件){
让key=event.keyCode | | event.which;
如果((键!=46 | |(键==46&&$(this.val()=='')||
$(this.val().toString().indexOf('.')!=-1)&&
(钥匙<48 | |钥匙>57)||
$(this.val().toString().indexOf('.')!=-1&&
$(this.val().toString().split('.')[1]。长度>=8){
如果(键==32){
$(this.val($(this.val().substring)(0,$(this.val().length-1));
}
event.preventDefault();
}
}).on('paste',函数(事件){
event.preventDefault();
});

“我有一个bug”并不能很好地描述这个问题。它应该做什么,它应该做什么?这个函数做3次验证。只接受数字和点,只接受一个点,输入点后只接受8位小数。编辑问题以添加澄清。效果很好。但是我想知道是否有更好的方法来进行这种格式化有很多方法。您的方式没有错误,但是,您需要改进代码。您可以使用一个Lib,比如Cleave.js或其他Lib。