Задать вопрос
@BuBux

Почему событие onclick не всегда срабатывает с первого раза?

Есть форма с кнопкой отправки. На кнопку повесил событие "click".
document.querySelector('#goy').addEventListener('click', (event) => {
    event.preventDefault();
    console.log('submit ');
});

У формы есть поля, на которых также висят обработчики событий "focusin", "focusout". Обработчик для одного из полей:
name.addEventListener("focusin", (event) => {
    removeError(event.currentTarget.id);
});

name.addEventListener("focusout", (event) => {
    name.value = name.value.replace(/\s/g, '');

    if (name.value === '') {
        return name.insertAdjacentHTML('afterend',
            errorTextTemplate("name_error", "Заполните поле"));
    }
});

Вспомогательные функции, которые встречаются в коде выше:
const errorTextTemplate = (id, text) => {
    return `<label for="${id}" class="danger" id="${id}">${text}</label>`;
}

const removeError = (id) => {
    let elem = document.querySelector(`#${id}_error`);

    if (elem) elem.remove();
};

Суть вопроса: Если установить курсор в поле с id "name", а затем сразу отправить форму, то обработчик события на отправку формы не всегда срабатывает с первого раза(в консоле сообщение submit).
P.S. Если я уберу обработчики события focusout, focusin то всё вроде как работает корректно. Но мне необходимы данные обработчики
  • Вопрос задан
  • 364 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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