Найти следующий ввод

Мне нужно получить следующий ввод, чтобы поместить на него курсор после заполнения первого ввода. Помогите, пожалуйста, если не трудно!

jQuery:

$('input').keyup(function(){
  if ($(this).val().match(/^\d{1}$/)){
    $(this).next('input').focus();
  }else{
    $(this).val('');
  }
});

HTML:

<ul id = "block">
  <li><span data-tooltip = "tooltip">text</span><input type = "text"></li>
  <li><span data-tooltip = "tooltip1">text1</span><input type = "text"></li>
</ul>

Какая именно часть работает не так, как вы ожидаете - слушатели, регулярное выражение, обход DOM, что-то еще?

WillardSolutions 30.06.2019 22:13
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
1
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

.next() относится к непосредственно соседнему (следующему) элементу, что неверно для ваших входных данных.

Вместо этого попробуйте:

if ($(this).val().match(/^\d{1}$/)){
  $(this).closest("li").next("li").find("input").focus();
}

.closest("li") перемещается вверх, пока не найдет <li>. Затем мы получаем следующий <li> с .next(). Наконец, мы можем копаться в этом <li> для input, используя .find("input")

Большое спасибо! Оно работает! $(this).closest("li").next("li").find("input").focus();

Goga 30.06.2019 22:17

Другие вопросы по теме