@ginap0

Почему у меня не перенаправляет на другую ссылку?

const form = document.forms.form;

form.addEventListener("submit", function(event) {
	let name = form.name.value;
	let pass = form.password.value;
	let repass = form.repass.value;
	let state = form.state.value;

	let fail = "";


	if(name === "" || pass === "" || state === "")  
		fail = "Заполните все поля"; 
	else if(name.length <= 1 || name.length > 50) 
		fail = "Введите корректное имя";
	else if(pass !== repass) 
		fail = "Пароли не совпадают";
	else if(pass.split("&").length > 1)  
		fail = "Некорректный пароль";


	if(fail !== "") { 
		let err = document.getElementById("error");
		err.classList.add("error-active");
		err.innerHTML = fail; 
		event.preventDefault(); 
	} else {
		alert("Все данные успешно сохранены");
		err.classList.remove("error-active");
		window.location = "https://google.com";
		
		
		return true; 
	}

});
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
jackmarston
@jackmarston
human
Потому что err определена в if но не в else поэтому ошибка

const form = document.forms.form
const err = document.getElementById("error")

form.addEventListener("submit", function(event) {
    event.preventDefault()

    const name = form.name.value.trim()
    const pass = form.password.value.trim()
    const repass = form.repass.value.trim()
    const state = form.state.value.trim()

    let fail = ""
    if (name === "" || pass === "" || repass === "" || state === "") {
        fail = "Заполните все поля"
    } 

    else if (name.length < 2 || name.length > 50) {
        fail = "Введите имя длиной от 2 до 50 символов"
    } 

    else if (pass !== repass) {
        fail = "Пароли не совпадают"
    } 

    else if (pass.includes("&")) {
        fail = "Пароль не должен содержать символ &"
    }

    if (fail) {
        displayError(fail)
    } else {
        alert("Все данные успешно сохранены")
        window.location.href = "https://google.com"
    }
});

// Функция для отображения ошибки
function displayError(message) {
    err.textContent = message
    err.classList.add("error-active")
}

// Функция для скрытия ошибки
function hideError() {
    err.textContent = ""
    err.classList.remove("error-active")
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы