Почему следующее текстовое поле было запущено после того, как я нажал кнопку Enter и сосредоточился на следующем текстовJquery

Программирование на jquery
Ответить
Anonymous
 Почему следующее текстовое поле было запущено после того, как я нажал кнопку Enter и сосредоточился на следующем текстов

Сообщение Anonymous »

У меня есть список текстового поля и кнопки:

Код: Выделить всё

Please type Enter to move to the next element


Confirm






Моя цель: когда я нажимаю Enter в текстовом поле или кнопке, фокус будет на следующем элементе. Но с помощью кнопки, когда я нажимаю Enter, она переходит к следующему элементу, и этот элемент продолжает вызывать событие нажатия клавиши (Enter) и переходить к следующему.

Код: Выделить всё

const selects = document.querySelectorAll('.item');
selects.forEach(el => el.addEventListener('keyup', e => {
if (e.key === 'Enter' || e.keyCode === 13) {
let idx = parseInt(e.currentTarget.getAttribute("index"));
focusToTheNextControl(idx);
}
}));
document.querySelector('.btn-item').addEventListener('click', e => {
let idx = parseInt(e.currentTarget.getAttribute("index"));
focusToTheNextControl(idx);
});
function focusToTheNextControl(idx) {
document.querySelector("#item-" + (idx + 1)).focus();
}

Код: Выделить всё

const selects = document.querySelectorAll('.item');
selects.forEach(el => el.addEventListener('keyup', e => {
if (e.key === 'Enter' || e.keyCode === 13) {
let idx = parseInt(e.currentTarget.getAttribute("index"));
focusToTheNextControl(idx);
}
}));

document.querySelector('.btn-item').addEventListener('click', e => {
let idx = parseInt(e.currentTarget.getAttribute("index"));
focusToTheNextControl(idx);
});

function focusToTheNextControl(idx) {
document.querySelector("#item-" + (idx + 1)).focus();
}

Код: Выделить всё

Please type Enter to move to the next element


Confirm







Я пытаюсь отложить фокус на следующем элементе, используя setTimeout через 1 секунду и оно останавливается. Я понятия не имею, как это работает и как правильно это остановить.
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/792 ... button-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»