如何控制input输入的数字最多有两位小数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何控制input输入的数字最多有两位小数?相关的知识,希望对你有一定的参考价值。
//只能输入数字,最多两位小数。 首位不能输入0;$("#inp2").keydown(function(e)
let keyCode = e.keyCode;
if((keyCode >= 48 && keyCode <= 57 || keyCode === 190 || keyCode === 8) && !(!$("#inp2").val() && e.keyCode === 48))
let num = ($("#inp2").val() + "" + e.key);
if(/^[0-9]+(.[0-9]0,2)?$/.test(num))
else
if(e.keyCode === 8)
return;
e.preventDefault();
else
e.preventDefault();
);
//只能输入数字,最多两位小数。 首位可以输入0;
$("#inp1").keydown(function(e)
// 0 keyCode 48 9 keyCode 57 . keyCode 190 删除 keyCode 8
let keyCode = e.keyCode;
if(keyCode >= 48 && keyCode <= 57 || keyCode === 190 || keyCode === 8)
let num = ($("#inp1").val() + "" + e.key);
if(/^[0-9]+(.[0-9]0,2)?$/.test(num))
else
if(e.keyCode === 8)
return;
e.preventDefault();
else
e.preventDefault();
); 参考技术A 给你两种方法:
1 是用input 的 keyDown 事件中 添加判断,【可以用正则,网上很多的】。然后超过了就帮它删除最后一位,或者禁止输入。
2 用input的focusOut事件,无论对方输入多少,当移开焦点后,你用math的方法对小数后三位进行四舍五入。 参考技术B 在做类似的项目,自己想了一个不用正则表达式的方法。
思路:获取到input的数值然后乘以1000 再对10求余 如果余数大于0, 就截取前两位小数并且改变input输入框, 截取的方法是Math.floor(number * 100) / 100。
比如说:4.589 4.589 * 1000 % 10 = 9 就截取4.58
quantity是input的Id
$("#quantity").bind("input propertychange change", function()
var quantity = parseFloat($("#quantity").val());
if((quantity * 1000) % 10 > 0)
quantity = Math.floor(quantity * 100) / 100;
$("#quantity").val(quantity);
$("#item-total").html((parseFloat($("#item-price").html()) * quantity).toFixed(2));
);
控制input标签中只能输入数字以及小数点后两位
js 代码如下:
/* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { obj.value = ""; } if (obj != null) { //检查小数点后是否对于两位http://blog.csdn.net/shanzhizi if (obj.value.toString().split(".").length > 1 && obj.value.toString().split(".")[1].length > 2) { alert("小数点后多于两位!"); obj.value = ""; } } }
<input type = "text" onkeyup="checkNum(this)" />
以上是关于如何控制input输入的数字最多有两位小数?的主要内容,如果未能解决你的问题,请参考以下文章