【问题标题】:enter one decimal point only in textbox html仅在文本框 html 中输入一位小数
【发布时间】:2013-12-02 09:29:40
【问题描述】:

我找到了很多关于这个问题的链接,但没有一个正确(完全)回答了这个问题。 如何限制用户在文本框中只允许一个小数点。 1.3、5.6 等(用户不能输入两位小数)。并且用户也不应该能够将其他无效数据复制粘贴到文本字段。?如何在 javascript 或 jquery 中实现这一点??

【问题讨论】:

  • 请发布您到目前为止的代码和演示以重现您遇到的具体问题。
  • 小数点前有多少个数字?
  • 给你的一个提示......根据 dot(.) 分割一个字符串,那么如果有一个小数点,你得到的数组的长度应该是 2......你可以使用这个信息....编码
  • 小数点前两位数和小数点后一位数@Terror.Blade

标签: javascript html


【解决方案1】:

您不一定需要 javascript,使用 HTML5 模式属性作为输入:

<form>
    <input type="text" required pattern="[-+]?(\d*[.])?\d+">
</form>

当您尝试提交表单时,浏览器应该会显示一条错误消息。在旧版浏览器中,您可以polyfill 这个不存在的功能。

【讨论】:

  • 它在 Firefox 中工作。但不确定它是否适用于所有浏览器和所有版本。 (忘记 IE。但是 IE 中没有任何作用:)
  • 它只适用于 IE 8.0+ caniuse.com/#feat=forms,但这就是链接 polyfills 的用途!看看 html5 表单 polyfills 的列表,你可以填补 的空白
【解决方案2】:

我知道这是对这个问题的一个很晚的答复,但由于这里没有提供令人满意的答案,我将分享我的解决方案以供将来参考。

您可以将此函数添加到您的 javascript 文件中,该文件将只允许该特定文本框输入中的一个小数点:

function oneDecimalOnly(element) {

  var charCodeEnteredEntered = (event.which) ? event.which :
    (window.event.keyCode) ? window.event.keyCode : -1;

  // '.' decimal point  
  if (charCodeEnteredEntered === 46) {

    // Allow only 1 decimal point
    if ((element.value) && (element.value.indexOf('.') >= 0))
      return false;
    else
      return true;
  }
  return false;
}
<form>
  <input type="text" name="decimal" id="decimal" onkeypress="return oneDecimalOnly(this);">
</form>

我希望这会做得很好。更多信息请访问http://www.c-sharpcorner.com/blogs/allow-only-numeric-values-and-allow-only-one-dot-in-textbox-using-javascript1,我发现它很有帮助。

【讨论】:

  • 这不允许输入数字
【解决方案3】:

我认为你需要这个:Formance.js github:https://github.com/omarshammas/jquery.formance

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2018-11-28
    • 1970-01-01
    • 2011-11-24
    • 2012-08-30
    • 1970-01-01
    相关资源
    最近更新 更多