如何使文本字段只接受数字和两个小数位

时间:2017-12-12 17:41:05

标签: javascript jquery

我需要使一个文本字段只接受数字和小数点,并默认为两位小数。 我在这里搜索了这段代码。它适用于仅接受数字。 我需要让它接受小数点,并默认为两位小数。

<input type="text" onkeypress="return event.charCode === 0 || /\d/.test(String.fromCharCode(event.charCode));" />

由于

3 个答案:

答案 0 :(得分:0)

将其留给HTML5:

<input type="number" step="0.01">

另外,请记住服务器端验证(例如在PHP中)。不要试图强制丢失一些按键,或者不要覆盖默认的浏览器行为。这不是用户友好的。

按A键会怎么做,什么也没有显示?你会去商店买一个新键盘吗?

在这种情况下,请尝试为用户提供线索,您期望的数据类型。 为用户提供一个工具(键入=&#34;数字&#34;)以在手机上显示最佳键盘布局

但是不要试图做到这一点&#34;更好&#34;。在这种情况下,这意味着更糟糕。

有关此主题的更多信息:

答案 1 :(得分:0)

如果您想要始终显示2个小数位,您可以将输入重新格式化为圆形并显示为2位小数:

&#13;
&#13;
function isNumberKey(evt) {
  var charCode = (evt.which) ? evt.which : event.keyCode;
  if (charCode > 31 && (charCode != 46 && (charCode < 48 || charCode > 57)))
    return false;
  return true;
}

$("#twodecimals").change(function() {
  var format = parseFloat(Math.round($(this).val() * 100) / 100).toFixed(2);
  $(this).val(format);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="twodecimals" onkeypress="return isNumberKey(event)" />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用正则表达式来限制可以输入到字段中的内容。

举个例子:

<input type="text" pattern="(?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1}">

您可以访问regexlib.com这样的网站,它可以帮助您构建和测试您正在寻找的正则表达式类型。

可能有更好或更有说服力的方法,但这很容易,对我有用。