Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript验证输入字段以仅限制数字并将范围设置为最大值和最小值_Javascript_Html_Angularjs_Forms_Validation - Fatal编程技术网

如何使用javascript验证输入字段以仅限制数字并将范围设置为最大值和最小值

如何使用javascript验证输入字段以仅限制数字并将范围设置为最大值和最小值,javascript,html,angularjs,forms,validation,Javascript,Html,Angularjs,Forms,Validation,我的表单中有一个输入框,我想限制用户只输入0到99999之间的数字。但我不想禁用选项卡按钮功能。下面的代码适用于“仅数字”,但不允许使用Tab按钮。此外,如果有人输入大于99999的数字,它也不会检查溢出情况 On event change the overflow value must get rejected. 函数myIdFunction(){ var txt=“”; if(document.getElementById(“EmpId”).validity.rangeOverflow)

我的表单中有一个输入框,我想限制用户只输入0到99999之间的数字。但我不想禁用选项卡按钮功能。下面的代码适用于“仅数字”,但不允许使用Tab按钮。此外,如果有人输入大于99999的数字,它也不会检查溢出情况

On event change the overflow value must get rejected.

函数myIdFunction(){
var txt=“”;
if(document.getElementById(“EmpId”).validity.rangeOverflow){
txt=“值太大”;
}
document.getElementById(“demo”).innerHTML=txt;
}
*输入数字(0-)
var specialKeys=新数组();
推(8)//退格
函数为数字(e){
var-keyCode=e.which?e.which:e.keyCode
var ret=((keyCode>=48&&keyCode
由以下人员带给您:

有关规格,请参阅:

有关支持的浏览器,请参阅:

对于较旧的浏览器,请使用:

(用于在当前不支持HTML5的浏览器中实现HTML5
元素的polyfill。)

正确价值观的现场实施 如果您不希望用户在键入时输入不正确的值:

   <script>
      function myIdFunction() {
        var txt = "";
        if (document.getElementById("EmpId").validity.rangeOverflow) {
        txt = "Value too large";
        }
      document.getElementById("demo").innerHTML = txt;

      }
  </script>

  <input type="text" name="id" id="EmpId" ng-model="EmpId" max="99999"
   onchange="myIdFunction()" onkeypress="return IsNumeric(event);" 
   ondrop="return false;" onpaste="return false;" ng-disabled="!edit"    
   placeholder="EmpId" required>

   <span id="error" style="color: Red; display: none">* Input digits (0 -)</span>
   <script type="text/javascript">
    var specialKeys = new Array();
    specialKeys.push(8); //Backspace
    function IsNumeric(e) {
        var keyCode = e.which ? e.which : e.keyCode
        var ret = ((keyCode >= 48 && keyCode <= 57) ||
            specialKeys.indexOf(keyCode) != -1);
        document.getElementById("error").style.display = ret ? "none" : "inline";
        return ret;
    }
  </script>

请参阅:。

我建议您将所有js脚本放在一起,这样可以更好地格式化,并为函数提供描述性名称。感谢@adminXVII的建议,但这只是一个试用代码。但有时它无法正常工作。我只想将javascript用于此目的。我想要的输入框类型是,用户的应该不能键入超过限制的内容。但使用此功能,用户可以键入他想要的内容。我也想限制键入内容。@RawCoder查看我的更新答案。我添加了符合您在注释中解释的内容的代码。谢谢您的帮助@rsp。它完全按照我的要求工作。
var last = '';
input.addEventListener('input', function () {
  if (this.checkValidity()) {
    last = this.value;
  } else {
    this.value = last;
  }
});