仅在文本框html中输入一个小数点

时间:2013-12-02 09:29:40

标签: javascript html

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

3 个答案:

答案 0 :(得分:1)

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

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

只要您尝试提交表单,浏览器就会显示错误消息。在旧版浏览器中,您可以polyfill这种不存在的功能。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

您可以将此功能添加到您的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,我发现它非常有用。