/
Coderdev
/
web-static-labs
Обзор
Документация
Войти
/
Coderdev
/
web-static-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
html/lab6/task6/script.js
1 строка
2 KB
Coderdev
1
30 мар 2026, 18:31
30 мар 2026, 18:31
020a8dd
Код
Авторство
О чём код?
"use strict";const STORAGE_KEY="lab6FormData",SENT_KEY="lab6FormSentData",form=document.getElementById("profileForm"),projectCheckbox=document.getElementById("projectCheckbox"),projectWrap=document.getElementById("projectWrap"),projectName=document.getElementById("projectName"),saveBtn=document.getElementById("saveBtn"),statusEl=document.getElementById("status");let isSaved=true;window.addEventListener("DOMContentLoaded",restoreForm);projectCheckbox.addEventListener("change",toggleProjectField);saveBtn.addEventListener("click",saveForm);form.addEventListener("input",markUnsaved);form.addEventListener("change",markUnsaved);form.addEventListener("submit",submitForm);window.addEventListener("beforeunload",function(event){if(!isSaved){event.preventDefault();event.returnValue=""}});function toggleProjectField(){projectWrap.hidden=!projectCheckbox.checked;if(!projectCheckbox.checked)projectName.value=""}function collectData(){return{lastName:document.getElementById("lastName").value.trim(),firstName:document.getElementById("firstName").value.trim(),middleName:document.getElementById("middleName").value.trim(),gender:form.querySelector('input[name="gender"]:checked')?.value||"",faculty:document.getElementById("faculty").value,inProject:projectCheckbox.checked?"Да":"Нет",projectName:projectCheckbox.checked?projectName.value.trim():""}}function saveForm(){localStorage.setItem(STORAGE_KEY,JSON.stringify(collectData()));isSaved=true;statusEl.textContent="Данные сохранены в localStorage."}function restoreForm(){const raw=localStorage.getItem(STORAGE_KEY);if(!raw)return;const data=JSON.parse(raw);document.getElementById("lastName").value=data.lastName||"";document.getElementById("firstName").value=data.firstName||"";document.getElementById("middleName").value=data.middleName||"";document.getElementById("faculty").value=data.faculty||"";if(data.gender){const radio=form.querySelector(`input[name="gender"][value="${data.gender}"]`);if(radio)radio.checked=true}projectCheckbox.checked=data.inProject==="Да";toggleProjectField();projectName.value=data.projectName||"";isSaved=true;statusEl.textContent="Данные восстановлены из localStorage."}function markUnsaved(){isSaved=false;statusEl.textContent="Есть несохранённые изменения."}function submitForm(event){event.preventDefault();localStorage.setItem(SENT_KEY,JSON.stringify(collectData()));isSaved=true;window.location.href="result.html"}