用户类型时将输入值转换为货币格式

Alo*_*oCT 1 javascript string jquery number-formatting currency-formatting

我无法将输入值转换为货币格式.我想在用户输入数字(5,000.00; 125,000.00)时自动添加数千和小数分隔符.

这是我的代码:

$('input.CurrencyInput').on('blur, focus, keyup',
    function() {
        $(this).val().toLocaleString('en-US', {
            style: 'decimal',
            maximumFractionDigits: 2,
            minimumFractionDigits: 2
        });
    });
Run Code Online (Sandbox Code Playgroud)

31p*_*piy 6

您的代码存在一些问题:

  1. 将多个事件处理程序绑定到输入框时,您使用逗号.
  2. 在申请之前,您不会将收到的值转换为数字toLocaleString.
  3. 转换后,您没有再次设置文本框的值.

更正这些,这是一个工作演示.为了简便起见,我已删除了其他事件处理程序,除了blur作为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
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="CurrencyInput">
Run Code Online (Sandbox Code Playgroud)