如何控制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输入的数字最多有两位小数?的主要内容,如果未能解决你的问题,请参考以下文章

控制input标签中只能输入数字以及小数点后两位

JS控制只能输入数字并且最多允许小数点两位

JS控制只能输入数字并且最多允许小数点两位

vue输入金额,仅输入数字并且保留两位小数

如何使用 Ant Design 将输入数字限制为最多两位小数?

iOS中UITextField输入判断小数点后两位