42 lines
1.0 KiB
JavaScript
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");
|
|
}
|
|
});
|