Backspace在输入字段中不在Firefox中工作

时间:2018-03-13 18:09:11

标签: javascript html

我将此输入与onkeypress事件一起提交:

<input type="number" min = "0" id = "count" onkeypress='return event.charCode >= 48 && event.charCode <= 57' /> 

基本上这只允许在字段中输入数值......这在Chrome,Firefox和IE中运行得很好...这对我来说已经足够了。但“退格”键在Firefox中不起作用。它在Chrome和IE中运行良好。我的意思是如果我想键入'15'并且偶然输入'155'...在Firefox中我无法在该字段上使用“退格”。如何在Firefox中进行退格键操作?

4 个答案:

答案 0 :(得分:1)

jQuery代码片段下方只允许文本框中的数字。但是也允许退格键和删除键。

   $("#testID").keydown(function(e) {
    if (e.shiftKey)
     e.preventDefault();
    else {
     var nKeyCode = e.keyCode;
     //Ignore Backspace and Tab keys
     if (nKeyCode == 8 || nKeyCode == 9)

      return;

     if (nKeyCode < 95) {
      if (nKeyCode < 48 || nKeyCode > 57)
       e.preventDefault();
     } else {
      if (nKeyCode < 96 || nKeyCode > 105)
       e.preventDefault();
     }
    }
   });

答案 1 :(得分:0)

您可能想要这样做:

&#13;
&#13;
var input = document.querySelector('#count');
input.addEventListener('input', function (e) {
  return (e.keyCode === 8 || (e.keyCode >=48 && e.keyCode <=57));
});
&#13;
<input type="number" min="0" id="count">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试此方法仅允许使用数字:

&#13;
&#13;
function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}
&#13;
<input type="number" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />
&#13;
&#13;
&#13;

https://jsfiddle.net/6dfrLz0p/12/

答案 3 :(得分:0)

您可以为Backspace键添加一个catch:

&#13;
&#13;
<input type="number" min = "0" id = "count" onkeypress='return event.charCode >= 48 && event.charCode <= 57 || event.key === "Backspace"' /> 
&#13;
&#13;
&#13;