Всем добрый. Имеется страница с несколькими формами, которые создаются динамически на предыдущей странице в зависимости от выбора пользователя (пользователь нажал 3, на следующей странице появилось 3 формы). Все работало хорошо, формы поочередно заполнялись и пользователя роутило на следующую страницу, до того момента пока я не добавил условие на проверку cookie, if (cookieHasAuto > 0). В данном случае, если cookie > 0, то при заполнении только одной формы сразу отработает if(valid) и пользователя зароутит сразу же сюда redirectToPassCar(); даже если он выбрал те же 3 формы, как будто сразу отключается e.preventDefault(). Подскажите пожалуйста в чем причина, я набросал приблизительный код того, что происходит в проекте.
<form action="">
<div class="parent-block">
<input type="text">
<div></div>
<button class="btn" type="submit">click</button>
</div>
</form>
/* cookieHasAuto */ //данные в куки, могут быть 1 или 0
form.addEventListener("click", function(e) { //кликаю по кнопке какой-то из форм
e.preventDefault();
const parentBlock = e.target.closest(
".parent-block"
);
if (e.target.classList.contains("btn")) { //нахожу кликнутую кнопку
let valid = true; //флаг валидации
//test validation
input.forEach((data) => {
if (data.value == null || data.value === "") {
data.nextElementSibling.innerHTML =
"заполните пустое поле";
valid = false;
} else {
data.nextElementSibling.innerHTML = "";
}
});
if (valid) { // если вся валидация успешна, выполнить следующий код
if (cookieHasAuto > 0) {
redirectToPassCar(); //если куки == 1, то редирект сюда
} else {
redirectToPassView(); //если куки == 0, то редирект сюда
}
}
}
})
jsfiddle.net/a8jmuov1/7