52 lines
1.9 KiB
JavaScript
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());
|
|
}
|
|
});
|