转换表格编号字段值的结构

时间:2018-08-21 12:27:28

标签: javascript html5 forms

在一个网页中,我要求用户输入一个名为“预算”的字段。我尝试使用下面的脚本为输入的数字创建千位分隔符:

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

1 个答案:

答案 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">