33 lines
1.7 KiB
JavaScript
33 lines
1.7 KiB
JavaScript
// Модуль используется для валидации форма на странице
|
||
|
||
// Функция для проверки элементов управления формы на заполненность и корректность
|
||
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;
|