@ArtJH

Как в vue для input number ограничить количество вводимых символов, например только 2 цифры?

Нашел такое решение но не на vue https://jsfiddle.net/DRSDavidSoft/zb4ft1qq/2/
Но oninput не срабатывает. Подозреваю из-за vue
  • Вопрос задан
  • 1353 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
директиву сделайте, которая будет подправлять количество символов:

const handlers = new Map();

function updateHandler(el, binding) {
  el.removeEventListener('input', handlers.get(el));

  const handler = () => {
    const value = el.value.replace(/\D/g, '').slice(0, binding.value);
    if (value !== el.value) {
      el.value = value;
      el.dispatchEvent(new Event('input'));
    }
  };
  handler();
  handlers.set(el, handler);

  el.addEventListener('input', handler);
}

Vue.directive('maxlen', {
  bind: updateHandler,
  update: updateHandler,
  unbind(el) {
    el.removeEventListener('input', handlers.get(el));
    handlers.delete(el);
  },
});

<input type="number" v-maxlen="2">
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы