如何控制input输入的数字最多有两位小数
答案:3 悬赏:0 手机版
解决时间 2021-01-29 08:01
- 提问者网友:半生酒醒
- 2021-01-29 02:26
如何控制input输入的数字最多有两位小数
最佳答案
- 五星知识达人网友:不如潦草
- 2021-01-29 02:53
你这个事件就有问题啊,直接关联到每次输入的时候,你怎么可能出现你要的情况呢?两位小数之前总得有一位小数的时候啊。没有人会先输入一个整数,然后才加小数点。而你这种判断时机只能这样。
应该加到blur上才好。匹配整数和两位小数的应该是^((\d*[1-9])|(0?\.\d{2}))$
0.11和 .11是等价的
应该加到blur上才好。匹配整数和两位小数的应该是^((\d*[1-9])|(0?\.\d{2}))$
0.11和 .11是等价的
全部回答
- 1楼网友:冷風如刀
- 2021-01-29 05:05
//只能输入数字,最多两位小数。 首位不能输入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();
}
});
- 2楼网友:摆渡翁
- 2021-01-29 04:03
给你两种方法:
1 是用input 的 keydown 事件中 添加判断,【可以用正则,网上很多的】。然后超过了就帮它删除最后一位,或者禁止输入。
2 用input的focusout事件,无论对方输入多少,当移开焦点后,你用math的方法对小数后三位进行四舍五入。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯