javascript - 转换表单编号字段值结构
问题描述
在网页中,我要求用户输入一个名为“预算”的字段。我尝试使用下面的脚本为输入的数字创建千位分隔符:
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
在隐藏字段中打印。
解决方案
这可能会有所帮助。
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">
推荐阅读
- node.js - 错误状态:使用 Node.js (express)、Angular 和 MongoDB 的 PUT 请求返回 404
- python - 如何替换字符并重命名多个文件?
- python - Beautifulsoup 对象不包含来自网页的完整表格,而是抓取前 100 行
- google-apps-script - 谷歌表格存档和清除问题
- java - Hive UDF:通用 UDF 无法从嵌套映射访问结构
- docusignapi - 通过您的应用程序使用签名时,如何通过电子邮件发送签名请求?
- javascript - Javascript Popup 无法显示列表项
- javascript - 为什么我的代码没有在输入字段中添加数字(HTML/Javascript - 初学者)?
- flutter - Flutter,如何在没有 Twilio SDK 的情况下使用 Twilio 发送消息
- javascript - 在 JavaScript 中将图像和文本链接添加到同一个 html div 容器