Fix: Multiple bugs
This commit is contained in:
@@ -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;
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user