【问题标题】:How to use javascript to validate the input field for restricting numbers only and setting the range as maximum and minimum如何使用javascript验证输入字段以仅限制数字并将范围设置为最大值和最小值
【发布时间】:2015-09-02 22:59:23
【问题描述】:
On event change the overflow value must get rejected.

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

   <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 html angularjs forms validation


【解决方案1】:

&lt;input type=number min=0 max=99999&gt;

提供给您:

规格见:

支持的浏览器见:

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

(用于在当前不支持的浏览器中实现 HTML5 &lt;input type=number&gt; 元素的 polyfill。)

实时执行正确值

如果您不希望用户在输入时输入错误的值:

var last = '';
input.addEventListener('input', function () {
  if (this.checkValidity()) {
    last = this.value;
  } else {
    this.value = last;
  }
});

请参阅:DEMO

【讨论】:

  • 但有时不能正常工作。我只想将 javascript 用于此目的。
  • 我想要的那种输入框是,用户不能输入超过限制的内容。但也可以使用它,用户可以根据需要输入任意数量的内容。我也想限制输入。
  • @RawCoder 查看我更新的答案。我添加了您在评论中解释的代码。
  • 感谢@rsp 的帮助。它完全按照我的意愿工作。
猜你喜欢
  • 1970-01-01
  • 2019-09-06
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 2014-09-08
相关资源
最近更新 更多