// Модуль используется для валидации форма на странице

// Функция для проверки элементов управления формы на заполненность и корректность
const checkForm = (event) => {
    // Получаем ссылку на форму
    const form = event.target;

    // https://learn.javascript.ru/bubbling-and-capturing
    // Если какой-либо элемент формы не заполнен или заполнен с ошибками, то
    if (!form.checkValidity()) {
        // Отменяем действие по умолчанию
        event.preventDefault();
        // Предотвратить всплытие события
        // Когда на элементе происходит событие, обработчики сначала срабатывают на нём,
        // потом на его родителе, затем выше и так далее, вверх по цепочке предков.
        // event.stopPropagation();
    }
    // добавляет к форме класс was-validated
    form.classList.add("was-validated");
};

// Функция для привязки обработчика событий
const myValidation = () => {
    // Поиск всех форма с классом .needs-validation
    const forms = document.querySelectorAll("form.needs-validation");

    // Установка функции checkForm в качестве обработчика события submit
    forms.forEach((form) => form.addEventListener("submit", checkForm));
};

// Экспорт функции myValidation
export default myValidation;
