使用jQuery Mask后如何获取输入框的原始数值?
解决jQuery Mask千分位掩码后数值获取截断的问题
嘿,这个问题我之前做项目时也碰到过,核心原因其实是parseFloat遇到非数字字符(比如千分位的逗号)就会停止解析,所以才会出现1,000被转成1的情况。给你两个靠谱的解决办法:
方法一:用jQuery Mask自带的unmask方法
这个插件本身就提供了获取原始未格式化值的API,直接调用就能拿到不带逗号的原始字符串,再转成数字就没问题了:
// 获取原始未掩码的值 const rawValue = $('#A3-input').unmask(); // 转换为数字 const A3 = parseFloat(rawValue);
方法二:手动移除逗号后转换
如果不想依赖插件的方法,也可以自己处理字符串,全局替换掉所有逗号再转数字:
const maskedValue = document.getElementById("A3-input").value; // 移除所有逗号 const rawValue = maskedValue.replace(/,/g, ''); // 转换为数字 const A3 = parseFloat(rawValue);
小提示
如果你的输入都是整数,用parseInt(rawValue, 10)或者Number(rawValue)可能比parseFloat更贴合需求哦。
内容的提问来源于stack exchange,提问作者humm
相关产品推荐
相关产品推荐

