我使用oninput属性使input字段在插入时自动生成千位分隔符,并且有效。
但我想要实现的是,它也允许放置点.字符,因为我想获得两位小数,到目前为止这是我的代码不起作用:
function separator(input) {
let nums = input.value.replace(/,/g, '');
if(!nums)return;
input.value = parseFloat(nums).toLocaleString();
}
function addition() {
var number1 = document.getElementById('number1').value;
var number2 = document.getElementById('number2').value;
number1 = number1.replace(/[,]+/g, '');
number2 = number2.replace(/[,]+/g, '');
if (number1 == "")
number1 = 0;
if (number2 == "")
number2 = 0;
var result = parseFloat(number1) + parseFloat(number2);
result = result.toFixed(2);
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
document.getElementById('total').onchange();
}
<table>
<tr>
<td><input onkeyup="addition()" oninput="separator(this)" type="text" id="number1" placeholder="123,456.16"></td>
<td>+</td>
<td><input onkeyup="addition()" oninput="separator(this)" type="text" id="number2" placeholder="123,456.16"></td>
<td>=</td>
<td><input onchange="separator(this);" type="text" name="total" id="total" placeholder="total" readonly></td>
</tr>
</table>
即使我已经设置了input带有属性的字段type="text",它仍然不能放置点.字符。
如何解决这个问题?
冉冉说
哈士奇WWW
一只萌萌小番薯
随时随地看视频慕课网APP
相关分类