0
button.addEventListener('click', createErrorMessageField());

function createErrorMessageField() {
dataItems.forEach(element => {
    let errorMessage = document.createElement('div');
    errorMessage.className = 'error-hidden';
    element.after(errorMessage);

    if (element.required === true && element.value === '') {
        errorMessage.innerText = 'This field is required';
        errorMessage.className = addErrorClass;
    }
})

}

Подскажите, пожалуйста, почему выполнение функции происходит до клика? прогружается страница и уже я вижу добавленные дивы с классами и т.д

  • Потому что вы её вызвали. Уберите скобки – Alexey Ten Mar 14 '20 at 19:03
  • спасибо огромное, почему-то был уверен, что не было скобок, невнимательный капец) – Malazanin Mar 14 '20 at 19:05

1 Answers1

-1

Потому что ты уже вызываешь эту функцию в обработчике button.addEventListener('click', createErrorMessageField()); Надо написать просто вот так button.addEventListener('click', createErrorMessageField); Или

button.addEventListener('click', function () {
createErrorMessageField()
);
Vladimir
  • 490