Как добавить новый текстовый инпут, по заполнении предыдущего?

Нужно добавлять новый блок с input (type="text"), когда в предыдущем набирается определённое кол-во символов.
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Так:

<div id="inputs">
  <input maxlength="5">
</div>

const $inputs = $('#inputs').on('input', 'input', function() {
  const $this = $(this);
  const maxlen = +$this.attr('maxlength');

  if ($this.val().length === maxlen) {
    let $next = $this.next();
    if (!$next.length) {
      $next = $(`<input maxlength="${maxlen}">`).appendTo($inputs);
    }

    $next.focus();
  }
});

// или

document.querySelector('#inputs').addEventListener('input', function(e) {
  const input = e.target;
  const maxlen = +input.getAttribute('maxlength');

  if (input.value.length === maxlen) {
    if (!input.nextElementSibling) {
      this.insertAdjacentHTML('beforeend', `<input maxlength="${maxlen}">`);
    }

    input.nextElementSibling.focus();
  }
});

??
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы