在一个网页中,我要求用户输入一个名为“预算”的字段。我尝试使用下面的脚本为输入的数字创建千位分隔符:
window.onload = function() {
document.getElementById("project-budget").onblur = function() {
this.value = parseFloat(this.value.replace(/,/g, ""))
.toFixed(0)
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
document.getElementById("display").value = this.value.replace(/,/g, "")
}
}
<input id="project-budget" step="5" required type="text" pattern="[0-9]*" class="test input-item text-field is_number numberVal" name="et_budget" min="1">
它可以完美地更改值,但是问题在于将字段值设置为文本会导致cms无法理解该字段中的值。因此,我需要在隐藏字段中将值改回简单数字,并使用该隐藏字段将值插入数据库。
我该如何更改回值?
例如,用户输入1000000
,脚本将其更改为1,000,000
。我想在隐藏字段中打印1000000
。
答案 0 :(得分:2)
这可能有帮助。
function parseBudget(element) {
const value = parseFloat(element.value.replace(/,/g, ''));
console.log(value);
element.value = value.toFixed(0)
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
document.querySelector("#forCms").value = value;
}
<input id="project-budget" step="5" required type="text" pattern="[0-9]*" onblur="parseBudget(this)" class="test input-item text-field is_number numberVal" name="et_budget" min="1">
<input type="number" id="forCms">