Форматирование входного значения как пользовательских типов

У меня возникают трудности при обновлении значения полей ввода до валюты, когда пользователь вводит. Когда я использую изменение события ввода, я могу успешно обновить значение в валюте. Но когда я использую событие keyup, входное значение и поведение взаимодействия не очень удобны для пользователя.

Я попытался использовать setTimeout, но не могу добиться форматирования значения / валюты, поскольку пользователь вводит правильно.

Любые советы или предложения будут с благодарностью.

Пример:

myInputElement.addEventListener('keyup', function (e) {
 e.currentTarget.value = numeral(e.currentTarget.value).format('$0,0.00');
});

2 ответа

Решение

Сделать десятичные числа необязательными.

numeral(e.currentTarget.value).format('$0,0.[00]');

Попробуйте "input" eventListener. Это будет срабатывать каждый раз, когда вводится новый персонаж.

var myInputElement = document.getElementById("element");

myInputElement.addEventListener("input", function (e) {
  e.currentTarget.value = numeral(e.currentTarget.value).format('$0,0.00');
});
Другие вопросы по тегам