我们有相同的输入标记和事件监听器来检查用户的输入,我们只接受数字,浮点数和整数,如果是浮点数-我们只需要在逗号或点后显示两位小数即可,并且我们只想防止输入小数点后第三位,但接受更改整数部分作为我们的值。
没有可见的替换,模糊后没有变化。只是在键入时防止第三个十进制数字。
答案 0 :(得分:0)
您可以检查输入中是否存在点。
如果有的话,将其位置与字符串的长度进行比较,如果超过所需的位数,则将其余部分剪掉。
document.getElementById("theInput").addEventListener("input", process);
function process() {
var text = document.getElementById("theInput").value;
var index = text.indexOf(".");
if (index > -1) {
if (text.length - index > 3) {
document.getElementById("theInput").value = text.substr(0, text.length - 1);
}
}
}
<input type="input" id="theInput">
答案 1 :(得分:0)
解决了!也许某天对某人有用!
选择器-目标输入
n -昏迷后的迹象数
function floatRestriction(selector, n){
var targetElement = document.querySelector(selector);
var oldValue = '';
var regexValue = '^([0-9]+[\,\.]{1}[0-9]{0,'+n+'}|[0-9]+|)$';
var re = new RegExp(regexValue);
targetElement.addEventListener('keypress', function(event){
oldValue = event.target.value;
});
targetElement.addEventListener('input', function(event){
if(!re.test(event.target.value)){
event.target.value = oldValue || '';
}
});
}
floatRestriction('#someInput', 2);
<input type="input" id="someInput">