/
superb1aze
/
lab04
Обзор
Документация
Войти
/
superb1aze
/
lab04
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
task
script.js
84 строки
2 KB
superb1aze
first commit
20 май 2025, 22:44
20 май 2025, 22:44
a24e907
Код
Авторство
О чём код?
// Функция №2 function max(a, b) { return a > b ? a : b; } // Функция №3 function range(n) { const arr = []; for (let i = 0; i <= n; i++) arr.push(i); return arr; } // Функция №4 function filterEven(arr) { return arr.filter(num => num % 2 === 0); } const form = document.getElementById('form'); const saveBtn = document.getElementById('save'); const loadBtn = document.getElementById('load'); const validateField = (input) => { const value = input.value.trim(); const parent = input.parentElement; const errorDiv = parent.nextElementSibling; let valid = true; if (value === '') { errorDiv.textContent = 'Поле обязательно для заполнения'; input.classList.add('error'); valid = false; } else if (input.type === 'email' && !/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(value)) { errorDiv.textContent = 'Некорректный email'; input.classList.add('error'); valid = false; } else { errorDiv.textContent = ''; input.classList.remove('error'); } return valid; }; const validateForm = () => { const elements = form.elements; let valid = true; for (let el of elements) { if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT') { if (!validateField(el)) valid = false; } } return valid; }; saveBtn.addEventListener('click', () => { if (!validateForm()) { alert('Сохранение не удалось. Исправьте ошибки формы.'); return; } const formData = {}; for (let el of form.elements) { if (el.name) { formData[el.name] = el.value; } } localStorage.setItem('formData', JSON.stringify(formData)); alert('Данные успешно сохранены.'); }); loadBtn.addEventListener('click', () => { const data = localStorage.getItem('formData'); if (!data) return; const parsed = JSON.parse(data); for (let key in parsed) { if (form.elements[key]) { form.elements[key].value = parsed[key]; } } });