【问题标题】:Input type text to maximum of 2 digits输入类型文本最多 2 位数字
【发布时间】:2018-11-14 19:13:46
【问题描述】:

我知道 type="number" 可以做到这一点,但我不能使用这个,因为我也有 pattern 与一些不兼容的正则表达式。

有没有办法限制type="text" 的输入? (在我的特殊情况下,限制为小数点后最多 2 位)。

【问题讨论】:

  • 在您的pattern 中指定它。
  • 您需要使用 letdown 事件,如果用户尝试输入第 3 位,则返回 false,因此不允许用户输入
  • @RobbyCornelissen 该模式已经做了类似的事情。它只匹配最多 2 位数字的数字。用户可以添加更多数字,但不会被验证。我想要的是不要在输入表单中引入超过 2 位数字。这是我正在使用的正则表达式“^(?!0+(?:\\.0*)?(?:[eE]\\d+)?$)^\\d+(?:\\.\\d{1,2})?(?:[eE][0-9]{1,5})?$
  • @AlaksandarJesusGene 你知道我在哪里可以找到这样的例子吗?我搜索了但没有找到任何

标签: html validation input html-input


【解决方案1】:

如果你想限制'.'后面2个字符的字符数,你可以检查总数是否真的是一个数字

并在 '.' 之后的 2 个字符后停止脚本编写

(我用 e.wich == 8 阻止删除键)

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction(e) {
    var x = document.getElementById("numb").value;
    var carac = (e.which == 8) ? '' : String.fromCharCode(e.which);
    var nbr = x + carac;
        if ( isNaN(nbr) ) {
          e.preventDefault();
          document.getElementById("numb").value = '';
          alert ( 'Please write a Number!' );
        }

    if(! Number.isInteger(nbr*100)) {
        e.preventDefault();
        //document.getElementById("numb").value = '';
    }
}
</script>
</head>
<body>

<p>A function is triggered when the user is pressing a key in the input field.</p>

<input id="numb" type="text" onkeypress="myFunction(event)">

</body>
</html>

【讨论】:

  • 您的代码一般只允许我写 2 位数字。我想要的是能够在小数点后写出 2 位数的最大值。例如:如果我写 42342.14 我应该不能写另一个数字
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-15
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多