var form = document.getElementById("regForm"); var msg = document.getElementById("formMsg"); var btn = document.getElementById("submitBtn"); form.addEventListener("submit", async function (e) { e.preventDefault(); msg.hidden = true; msg.className = "form-msg"; var data = { fio: form.fio.value.trim(), email: form.email.value.trim(), phone: form.phone.value.trim(), city: form.city.value.trim(), track: form.track.value, role: form.role.value, team: form.team.value.trim(), experience: form.experience.value.trim() }; if (!data.fio || !data.email || !data.phone || !data.city || !data.track || !data.role || !data.experience) { msg.textContent = "Пожалуйста, заполни все обязательные поля."; msg.classList.add("err"); msg.hidden = false; return; } btn.disabled = true; btn.textContent = "Отправляем…"; try { var resp = await fetch("api/register", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data) }); var result = await resp.json(); if (!resp.ok || !result.ok) throw new Error(result.error || "Ошибка сервера"); msg.textContent = "✅ Заявка отправлена! Мы пришлём приглашение на " + data.email + "."; msg.classList.add("ok"); msg.hidden = false; form.reset(); } catch (err) { msg.textContent = "Не удалось отправить заявку: " + err.message + ". Попробуй ещё раз."; msg.classList.add("err"); msg.hidden = false; } finally { btn.disabled = false; btn.textContent = "Отправить заявку"; } });