/
maxxon
/
web-static-labs
Обзор
Документация
Войти
/
maxxon
/
web-static-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
html/lab5/task9/script.js
112 строк
5 KB
Dasha_10
изменения
19 окт 2025, 18:51
19 окт 2025, 18:51
b6adcb0
Код
Авторство
О чём код?
document.addEventListener('DOMContentLoaded', function () { const form = document.getElementById('registrationForm'); const loginInput = document.getElementById('login'); const passwordInput = document.getElementById('password'); const confirmPasswordInput = document.getElementById('confirmPassword'); const ageInput = document.getElementById('age'); const citySelect = document.getElementById('city'); const deliveryCheckbox = document.getElementById('delivery'); const addressGroup = document.getElementById('addressGroup'); const addressInput = document.getElementById('address'); // Error spans const loginError = document.getElementById('loginError'); const passwordError = document.getElementById('passwordError'); const confirmPasswordError = document.getElementById('confirmPasswordError'); const ageError = document.getElementById('ageError'); const cityError = document.getElementById('cityError'); const addressError = document.getElementById('addressError'); const ageHint = document.getElementById('ageHint'); // Function to clear all error messages function clearErrors() { loginError.textContent = ''; passwordError.textContent = ''; confirmPasswordError.textContent = ''; ageError.textContent = ''; cityError.textContent = ''; addressError.textContent = ''; ageHint.textContent = ''; } // Function to validate the form function validateForm() { clearErrors(); let isValid = true; // Login validation const loginValue = loginInput.value.trim(); if (loginValue.length < 5 || loginValue.length > 20) { loginError.textContent = 'Логин должен содержать от 5 до 20 символов.'; isValid = false; } else if (loginValue === '') { loginError.textContent = 'Логин обязателен для заполнения.'; isValid = false; } // Password validation const passwordValue = passwordInput.value.trim(); if (passwordValue.length < 5 || passwordValue.length > 12) { passwordError.textContent = 'Пароль должен содержать от 5 до 12 символов.'; isValid = false; } else if (passwordValue === '') { passwordError.textContent = 'Пароль обязателен для заполнения.'; isValid = false; } const confirmPasswordValue = confirmPasswordInput.value.trim(); if (confirmPasswordValue !== passwordValue) { confirmPasswordError.textContent = 'Пароли не совпадают.'; isValid = false; } // Age validation const ageValue = parseInt(ageInput.value); if (isNaN(ageValue) || ageValue < 14 || ageValue > 120) { ageError.textContent = 'Возраст должен быть от 14 до 120 лет.'; isValid = false; } else if (ageValue < 14) { ageError.textContent = 'Возраст слишком мал'; isValid = false; } else if (ageValue > 120) { ageError.textContent = 'Возраст слишком велик'; isValid = false; } else if (ageValue >= 14 && ageValue <= 18) { ageHint.textContent = 'Требуется согласие родителей'; } // City validation if (citySelect.value === '') { cityError.textContent = 'Пожалуйста, выберите город.'; isValid = false; } // Address validation (if delivery is checked) if (deliveryCheckbox.checked) { const addressValue = addressInput.value.trim(); if (addressValue === '') { addressError.textContent = 'Пожалуйста, укажите адрес доставки.'; isValid = false; } } return isValid; } // Event listener for form submission form.addEventListener('submit', function (event) { event.preventDefault(); // Prevent the default form submission if (validateForm()) { alert('Форма успешно отправлена!'); // Replace with your desired submission logic } }); // Event listener for delivery checkbox deliveryCheckbox.addEventListener('change', function () { addressGroup.style.display = this.checked ? 'block' : 'none'; }); }); // Confirm password validation