42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
document.getElementById("regForm").addEventListener("submit", async function (e) {
|
||
e.preventDefault();
|
||
var form = e.target;
|
||
var msg = document.getElementById("formMsg");
|
||
var btn = document.getElementById("submitBtn");
|
||
var data = {
|
||
fio: form.fio.value,
|
||
dept: form.dept.value,
|
||
position: form.position.value,
|
||
phone: form.phone.value,
|
||
email: form.email.value,
|
||
guests: form.guests.value,
|
||
comment: form.comment.value
|
||
};
|
||
if (!data.fio || !data.phone || !data.email) {
|
||
msg.hidden = false;
|
||
msg.className = "form-msg err";
|
||
msg.textContent = "Пожалуйста, заполните ФИО, телефон и email.";
|
||
return;
|
||
}
|
||
btn.disabled = true;
|
||
btn.textContent = "Отправляем…";
|
||
msg.hidden = true;
|
||
try {
|
||
var r = await fetch("/api/register", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify(data)
|
||
});
|
||
var j = await r.json();
|
||
if (!r.ok || !j.ok) throw new Error(j.error || "Ошибка сервера");
|
||
form.hidden = true;
|
||
document.getElementById("regOk").hidden = false;
|
||
} catch (err) {
|
||
msg.hidden = false;
|
||
msg.className = "form-msg err";
|
||
msg.textContent = "Не удалось отправить: " + err.message + ". Попробуйте ещё раз.";
|
||
btn.disabled = false;
|
||
btn.textContent = "Зарегистрироваться";
|
||
}
|
||
});
|