我无法将输入值转换为货币格式。我想在用户键入数字(5,000.00;125,000.00)时自动添加千位和小数分隔符。
这是我的代码:
$('input.CurrencyInput').on('blur, focus, keyup',
function() {
$(this).val().toLocaleString('en-US', {
style: 'decimal',
maximumFractionDigits: 2,
minimumFractionDigits: 2
});
});
您的代码存在几个问题:
- 将多个事件处理程序绑定到输入框时使用逗号。
- 您在申请之前没有将收到的值转换为数字
toLocaleString
on it.
- 转换后您不会再次设置文本框的值。
纠正这些,这是一个工作演示。为了简单起见,我删除了其他事件处理程序,除了blur
, as keyup
造成了问题。
$('input.CurrencyInput').on('blur', function() {
const value = this.value.replace(/,/g, '');
this.value = parseFloat(value).toLocaleString('en-US', {
style: 'decimal',
maximumFractionDigits: 2,
minimumFractionDigits: 2
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="CurrencyInput">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)