Files
go-SSG/public/assets/contact.js

42 lines
1.0 KiB
JavaScript

document.getElementById("contactForm").addEventListener("submit", function (e) {
const name = document.getElementById("name");
const email = document.getElementById("email");
const message = document.getElementById("message");
let valid = true;
// Clear errors
document.querySelectorAll("[data-error]").forEach(el => {
el.classList.add("hidden");
el.textContent = "";
});
// Validate name
if (name.value.trim() === "") {
showError("name", "Name is required");
valid = false;
}
// Validate email
if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email.value)) {
showError("email", "Enter a valid email address");
valid = false;
}
// Validate message
if (message.value.trim().length < 10) {
showError("message", "Message must be at least 10 characters");
valid = false;
}
if (!valid) {
e.preventDefault();
}
function showError(field, message) {
const el = document.querySelector(`[data-error="\${field}"]`);
el.textContent = message;
el.classList.remove("hidden");
}
});