✨feature: Wire up contact and thank you pages, add showInNav meta functionality
This commit is contained in:
41
public/assets/contact.js
Normal file
41
public/assets/contact.js
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
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");
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user