我试图使用JS / jQuery从输入值中删除逗号。
输入类型是数字,我在按键上运行消毒过程。
当输入类型为文本时,以下代码可正常工作,但输入类型为数字时则无效。
我使用输入类型编号作为货币输入,因此我尝试删除逗号的原因是某人输入$ 1,000。
我想使用输入类型编号,因为这主要用于移动设备。
有谁知道为什么可能会讨好?
-
http://codepen.io/anon/pen/YXvxxK
$('.form input').on('keyup', function() {
field1 = $('#field1').val();
var newField1 = parseFloat(field1.replace(/,/g, ''));
console.log(newField1);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form class="form">
<input type="number" id="field1" />
</form>
&#13;
答案 0 :(得分:14)
此处的问题不在于您无法删除逗号,而且input
为type
的{{1}}元素中的逗号无效*。
如果我们在您的代码段中的字段中输入“1,234”并点击 Return ,我们会遇到以下验证错误:
这是因为值“1,234”被视为无效。由于这是无效的,元素的number
将返回为空字符串而不是字符串值“1,234”。
value
返回parseFloat("".replace(/,/g, ''))
。
快速修复就是停止使用NaN
输入类型并改用number
。然而,这可能不是你想要的。另一种方法是检测text
是否为空(value
)并向用户显示验证失败消息。
* 重要的是要注意这是特定于实现的。 HTML5规范声明浏览器供应商是"encouraged to consider what would best serve their users' needs"。将此处的逗号视为无效是此考虑的一部分。