Fix: Multiple bugs

This commit is contained in:
2025-12-13 13:39:58 +01:00
parent 3c7dc625e7
commit 869f12dcba
10 changed files with 131 additions and 776 deletions

View File

@@ -155,7 +155,7 @@
})();
// ##################
// Mailing
// Contact form
// ##################
(function () {
function ready(fn){ if(document.readyState!=='loading'){fn()} else {document.addEventListener('DOMContentLoaded',fn)} }
@@ -247,4 +247,72 @@ document.addEventListener("DOMContentLoaded", () => {
}, { threshold: 0.1 });
if (rows.length) observer.observe(rows[0]);
});
});
// ##################
// Newsletter form
// ##################
(function () {
const endpoint = "https://crm.start-it.nl/api/v1/LeadCapture/f6016190c29bc5723216f685be18a5e1";
function ready(fn){
if (document.readyState !== "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
}
ready(() => {
const form = document.getElementById("newsletter-form");
if (!form) return;
const okEl = document.getElementById("newsletter-status");
const errEl = document.getElementById("newsletter-error");
const get = (name) => form.elements.namedItem(name);
form.addEventListener("submit", async (e) => {
e.preventDefault();
if (okEl) okEl.hidden = true;
if (errEl) errEl.hidden = true;
// Honeypot (mailchimp hidden field)
const hpName = (get("{{ .mailchimp_form_name }}") ? "{{ .mailchimp_form_name }}" : null);
if (hpName && ((get(hpName)?.value || "").trim() !== "")) return;
const email = ((get("EMAIL")?.value) || "").trim();
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
if (errEl) { errEl.hidden = false; errEl.textContent = "Vul een geldig e-mailadres in."; }
return;
}
const submitBtn = form.querySelector('button[type="submit"]');
if (submitBtn) submitBtn.disabled = true;
try {
const res = await fetch(endpoint, {
method: "POST",
headers: { "Accept": "application/json", "Content-Type": "application/json" },
body: JSON.stringify({ emailAddress: email }),
mode: "cors",
credentials: "omit"
});
const text = await res.text().catch(() => "");
if (res.ok) {
form.reset();
if (okEl) okEl.hidden = false;
} else {
console.error("Newsletter LeadCapture response:", res.status, text);
if (errEl) { errEl.hidden = false; errEl.textContent = `Serverfout (${res.status}).`; }
}
} catch (err) {
console.error("Newsletter LeadCapture error:", err);
if (errEl) { errEl.hidden = false; errEl.textContent = "Netwerk/CORS fout. Zie console."; }
} finally {
if (submitBtn) submitBtn.disabled = false;
}
});
});
})();