CORS errors were previously not correctly handled, meaning the error message for the contact form would not appear. This is now fixed.
84 lines
2.7 KiB
JavaScript
84 lines
2.7 KiB
JavaScript
const nameInput = document.querySelector('input[name="name"]');
|
|
const email = document.querySelector('input[name="email"]');
|
|
const message = document.querySelector('textarea[name="message"]');
|
|
|
|
window.onload = validateForm();
|
|
|
|
function validateForm() {
|
|
nameInput.addEventListener('input', () => {
|
|
if (nameInput.value.length > 0) {
|
|
nameInput.style.border = '2px solid #242424';
|
|
} else {
|
|
nameInput.style.border = '2px solid #FA5B5B';
|
|
|
|
}
|
|
});
|
|
|
|
email.addEventListener('input', () => {
|
|
if (email.value.length > 0) {
|
|
email.style.border = '2px solid #242424';
|
|
} else {
|
|
email.style.border = '2px solid #FA5B5B';
|
|
}
|
|
});
|
|
|
|
message.addEventListener('input', () => {
|
|
if (message.value.length > 0) {
|
|
message.style.border = '2px solid #242424';
|
|
} else {
|
|
message.style.border = '2px solid #FA5B5B';
|
|
}
|
|
});
|
|
}
|
|
|
|
function checkForm() {
|
|
if (nameInput.value.length > 0 && email.value.length > 0 && message.value.length > 0) {
|
|
const response = document.querySelector('.response');
|
|
// Send a POST request to the server with the form data in JSON
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open('POST', 'https://contact.pkrm.dev');
|
|
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
|
|
|
|
const body = JSON.stringify({
|
|
name: nameInput.value,
|
|
email: email.value,
|
|
message: message.value
|
|
});
|
|
|
|
// Send the body and log 'success' if no error, otherwise log 'error'
|
|
// Use onerror to log the error
|
|
xhr.send(body);
|
|
xhr.onload = () => {
|
|
if (xhr.status == 200) {
|
|
response.innerHTML = 'Thank you for submitting your message. I will get back to you as soon as possible.';
|
|
response.style.visibility = 'visible';
|
|
response.style.color = "#73C276"
|
|
nameInput.value = '';
|
|
email.value = '';
|
|
message.value = '';
|
|
}
|
|
}
|
|
xhr.onerror = () => {
|
|
response.innerHTML = "Sorry, there was an error when submitting your message. Please try again later.";
|
|
response.style.visibility = 'visible';
|
|
response.style.color = "#FA5B5B"
|
|
nameInput.value = '';
|
|
email.value = '';
|
|
message.value = '';
|
|
}
|
|
|
|
|
|
} else {
|
|
if (nameInput.value.length == 0) {
|
|
nameInput.style.border = '2px solid #FA5B5B';
|
|
}
|
|
|
|
if (email.value.length == 0) {
|
|
email.style.border = '2px solid #FA5B5B';
|
|
}
|
|
|
|
if (message.value.length == 0) {
|
|
message.style.border = '2px solid #FA5B5B';
|
|
}
|
|
}
|
|
} |