Преобразование входного значения в формат валюты при вводе пользователя - PullRequest
0 голосов
/ 06 июня 2018

Мне не удалось преобразовать введенное значение в валютный формат.Я хочу автоматически добавлять тысячи и десятичные разделители, когда пользователь вводит число (5 000,00; 125 000,00).

Вот мой код:

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

1 Ответ

0 голосов
/ 06 июня 2018

Есть несколько проблем с вашим кодом:

  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
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="CurrencyInput">
...