首页 > 解决方案 > 如何限制在输入类型 =“数字”中输入十进制值

问题描述

我无法将输入字符仅限于整数。有没有一种方法可以限制十进制数或浮点数被输入输入类型=“ number”?

我还尝试了以下方法,方法是在触发事件时.替换为:''keyup

$("#myForm").on('submit', function(e) {
  e.preventDefault();
});

$("#number").on('keyup', function() {
  var regex = new RegExp(/\d+\.\d?/g);
  var number = $(this).val();
  if (regex.test(number)) {
    number = number.replace(/\./g, '');
    $(this).val(number);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm" action="//google.de">
  <p>Input type number step 1</p>
  <input type="number" name="number" id="number" step="1" min="0"/>
  <input type="submit" />
</form>

使用上面的代码,案例结果如下:

WORKS:
2.3

FAILS:
2..3
2….3
2.3.3.3.3.3.3.3.3.3.3.333...3

我只需要允许 2(任何整数),并且在所有其他情况下(包括复制和粘贴),应该删除小数。

所以我的最后一个问题是,如何限制浮点数在输入字段中输入type="number"?如果那不可能,那么我该如何更改上述代码以满足我的要求?

编辑:

如果此问题与另一个问题部分匹配,请不要关闭此问题。我也在这里写了一个代码。我想知道,它有什么问题。

标签: javascriptjqueryhtmlregex

解决方案


推荐阅读