我需要使一个文本字段只接受数字和小数点,并默认为两位小数。 我在这里搜索了这段代码。它适用于仅接受数字。 我需要让它接受小数点,并默认为两位小数。
<input type="text" onkeypress="return event.charCode === 0 || /\d/.test(String.fromCharCode(event.charCode));" />
由于
答案 0 :(得分:0)
将其留给HTML5:
<input type="number" step="0.01">
另外,请记住服务器端验证(例如在PHP中)。不要试图强制丢失一些按键,或者不要覆盖默认的浏览器行为。这不是用户友好的。
按A键会怎么做,什么也没有显示?你会去商店买一个新键盘吗?
在这种情况下,请尝试为用户提供线索,您期望的数据类型。 为用户提供一个工具(键入=&#34;数字&#34;)以在手机上显示最佳键盘布局。
但是不要试图做到这一点&#34;更好&#34;。在这种情况下,这意味着更糟糕。
有关此主题的更多信息:
答案 1 :(得分:0)
如果您想要始终显示2个小数位,您可以将输入重新格式化为圆形并显示为2位小数:
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;
答案 2 :(得分:0)
您可以使用正则表达式来限制可以输入到字段中的内容。
举个例子:
<input type="text" pattern="(?:[01]|2(?![4-9])){1}\d{1}:[0-5]{1}\d{1}">
您可以访问regexlib.com这样的网站,它可以帮助您构建和测试您正在寻找的正则表达式类型。
可能有更好或更有说服力的方法,但这很容易,对我有用。