我输入的用户必须输入不超过4位小数的位数:
<input type="text" name="price" />
怎么做,所以在小数点后输入超过4位是不可能的?
答案 0 :(得分:0)
也有一种方法,
.toFixed(4); // 4 would be the number of ints after decimal point.
.
字符后只能获得/允许4个字符。
toFixed()方法使用定点表示法格式化数字。
您还可以从我附在帖子上的文档中了解更多信息。他们也很好地解释了这种方法的例子。
来自Mozilla开发者网络:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
答案 1 :(得分:0)
在HTML5中:
<input type="number" step="0.0001" />
如果您想设置无效输入的样式(某些浏览器默认情况下会这样做),您可以使用:invalid
选择器:
input:invalid { box-shadow: 0 0 1.5px 1px red; }
请注意,此方法不会尝试自动截断数字,但如果用户输入的四位数以上,则输入将无效,因此表单不会被提交:
答案 2 :(得分:0)
$("#price").on('keyup',function(){
$("#price").val($("#price").val().replace(/[^\d.-]/g, ''));
var price = parseFloat($("#price").val());
var decimals = ((price).toFixed(5)).replace(/^-?\d*\.?|0+$/g, '').length;
if(decimals >= 4)
{
$("#price").val(price.toFixed(4));
}
});
确定小数位数,如果小数位数大于4,则将输入中的值设置为4。
也不允许输入中包含任何非数字字符。
错误弹出窗口是垃圾UI。 http://jsfiddle.net/calder12/z4f5B/3/
答案 3 :(得分:0)
用户固定:
<input type="text" name="price" onBlur="this.value = parseFloat(this.value).toFixed(4);" />
答案 4 :(得分:-2)
将maxlength =“4”添加到输入代码中。
<input type="text" name="price" maxlength="4" />