type="number" 的输入字段允许 Firefox 中的特殊字符在 Chrome 和 Edge 中正常工作

Input field with type="number" allows specials characters in Firefox works fine in Chrome and Edge

type="number" 的输入字段允许 Firefox 中的特殊字符在 Chrome 和 Edge 中正常工作。

在此输入字段中,我只需要输入数字并限制用户输入任何特殊字符和字母。

 <input type="number" name="height" class="form-control input-number"  ng-model="height" tabindex="11" min="0" data-ng-pattern="/^[0-9]{1,10}$/" data-ng-keydown="checkForNumber($event)">

JS函数

 $scope.checkForNumber = function(event) {
         if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 46 || event.keyCode == 190) {

         } else {
            event.preventDefault();
         }
      };

input = document.getElementsByTagName("INPUT")[0]
input.addEventListener("input", function() {
  if (isNaN(input.value)) {
    input.value = input.value.replace(/\D/g, '');
  }
})
<input type="text" name="height" class="form-control input-number" ng-model="height" tabindex="11" min="0" data-ng-pattern="/^[0-9]{1,10}$/">

js 监听输入。如果有输入,它会检查它是否是一个数字。如果不是,它会去除所有非数字。