【发布时间】:2023-03-18 11:54:01
【问题描述】:
我正在尝试制作一个贷款计算器,它一次最多只能输入两位小数。不幸的是,为此我不得不为输入添加一个脚本,该脚本不允许输入逗号。我不确定为什么这不允许逗号。我想要逗号来分隔每三个数字。例如,1,000,000。
我的页面的一个工作示例可以在以下位置看到:http://thetotempole.ca/sales/loancalculator.php
我不是在寻找建议,而是为我的问题寻找完整的解决方案。
这是我目前使用的脚本:
<script>
function trimDP(x, dp) {
x = parseFloat(x);
if (dp === 0)
return Math.floor(x).toString();
dp = Math.pow(10, dp || 2);
return (Math.floor((x) * dp) / dp).toString();
}
window.addEventListener('load', function () {
var nodes = document.querySelectorAll('.dp2'), i;
function press(e) {
var s = String.fromCharCode(e.keyCode);
if (s === '.')
if (this.value.indexOf('.') === -1)
return; // permit typing `.`
this.value = trimDP(this.value + s);
e.preventDefault();
};
function change() {
this.value = trimDP(this.value);
}
for (i = 0; i < nodes.length; ++i) {
nodes[i].addEventListener('keypress', press);
nodes[i].addEventListener('change', change);
}
});
</script>
这是我的输入代码:
<input type=text name=loan size=10 class="dp2">
【问题讨论】:
-
当
trimDP在您的输入中被调用时,parseFloat会删除逗号。 -
我应该如何处理我的代码?
-
恐怕有点。您需要重写解析输入的代码,以便允许逗号字符...然后您将如何处理放错位置的逗号?
-
好吧,我提供一票,最佳答案,如果您能做到这一点,我将非常感谢。我有这个计划,别担心。
-
提醒您,如果您推动“为我做作业”的角度,这个问题可能会被关闭。 Stack Overflow 随时为您提供帮助,而不是为您编写代码。
标签: javascript forms function input