34821-vm/assets/js/main.js
2025-10-09 09:30:46 +00:00

52 lines
1.9 KiB
JavaScript

document.addEventListener('DOMContentLoaded', function () {
const contactForm = document.getElementById('contactForm');
if (contactForm) {
contactForm.addEventListener('submit', function (e) {
e.preventDefault();
const name = document.getElementById('name').value;
const email = document.getElementById('email').value;
const message = document.getElementById('message').value;
const alertDiv = document.getElementById('form-messages');
if (name === '' || email === '' || message === '') {
showAlert('Please fill out all fields.', 'danger');
return;
}
if (!validateEmail(email)) {
showAlert('Please enter a valid email address.', 'danger');
return;
}
const formData = new FormData(contactForm);
fetch('contact.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
if (data.success) {
showAlert(data.message, 'success');
contactForm.reset();
} else {
showAlert(data.message, 'danger');
}
})
.catch(error => {
showAlert('An error occurred. Please try again later.', 'danger');
});
});
}
function showAlert(message, type) {
const alertDiv = document.getElementById('form-messages');
alertDiv.innerHTML = `<div class="alert alert-${type}">${message}</div>`;
}
function validateEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
});