【问题标题】:How to completely restrict decimal points from being entered in text input?如何完全限制在文本输入中输入小数点?
【发布时间】:2016-01-07 21:56:39
【问题描述】:

我在这里搜索了许多与 HTML 相关的问题,我目前正在使用输入标记模式属性来验证我的输入。这仅允许输入一个或两个数字,并且不会提交无效数据。但是,我更希望不需要的字符(小数点和字母)根本无法放入文本框中。

【问题讨论】:

  • @ecorvo 我可以看到它是如何工作的,我最终可能会使用它。然而,有人告诉我有一个 HTML5 解决方案是由其他人提供的,他不再拥有他所做的任何工作。在尝试 jQuery 之前,我正在尝试找到该解决方案。
  • 你可以像这样定义一个数字输入字段,它会过滤掉非数字字符,但仍然允许你输入小数..
  • @ecorvo 仍然允许输入小数,只是不提交 - 与我当前解决方案的模式属性相同。
  • 我能想到的唯一方法是使用正则表达式,但为此我只会使用插件,因为默认的 HTML 数字输入将允许您输入小数,因为没有输入仅输入整数

标签: html text input


【解决方案1】:

这将为您解决https://jsfiddle.net/DIRTY_SMITH/cfckvvzw/4/

更新了 fiddle 以允许 numlock 中的数字也可以工作 https://jsfiddle.net/DIRTY_SMITH/cfckvvzw/5/

<input ID="FirstName1" class="test" onkeydown="return Fname(event);">
<script>
  function Fname(evt) {

    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));


    //checks for invalid keystrokes (numbers only)
    if (charCode > 57 || charCode < 48) {
      return false;
    } else {
      return true;
    }
  }

</script>

【讨论】:

  • 很高兴看到你回答这样一个问题,因为你曾经为我做同样的事情而付出了很多努力。
  • 太棒了。谢谢!只是附带说明 - 显然这不是必需的,但是有没有办法将这个函数中的字符数限制为一两个?
  • @ladyskynet 你什么意思?最多两位数?
  • @TinyGiant 现在你在抱怨,因为我“更有”帮助?! ....好的....
  • 一点也不,那太好了。它只是让我发笑。
猜你喜欢
  • 2018-11-14
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 2019-12-08
  • 2019-08-02
  • 1970-01-01
相关资源
最近更新 更多