Handle form without redirect

This commit is contained in:
Hazem Krimi
2023-11-08 19:07:54 +01:00
parent 770beea258
commit 892ddca71a
3 changed files with 56 additions and 10 deletions
+22 -7
View File
@@ -7,18 +7,13 @@
input,
textarea,
button {
button,
#submission-status {
border: none;
border-radius: 0.5625rem;
color: var(--text);
}
button {
padding: 1rem 2.8rem;
background-color: var(--button-background);
color: var(--white);
}
input,
textarea {
padding: 1.2rem 1.9rem;
@@ -42,6 +37,26 @@ form textarea {
width: 100%;
}
form div {
width: 100%;
display: flex;
align-items: center;
justify-content: start;
}
form button, form #submission-status {
padding: 1rem 2.8rem;
background-color: var(--button-background);
color: var(--white);
}
form #submission-status {
margin-left: auto;
width: auto;
display: none;
}
form button {
cursor: pointer;
}
+30 -2
View File
@@ -1,4 +1,32 @@
document.querySelector('form').addEventListener('submit', (event) => {
const form = document.querySelector('form');
const submissionStatus = form.querySelector('#submission-status');
form.addEventListener('submit', (event) => {
event.preventDefault();
console.log(new FormData(event.target));
fetch(event.target.action, {
method: event.target.method,
body: new FormData(event.target),
headers: {
Accept: 'application/json',
},
})
.then((response) => {
if (response.ok) {
submissionStatus.innerHTML = 'Message sent successfully!';
submissionStatus.style.display = 'block';
form.reset();
}
})
.catch((error) => {
submissionStatus.innerHTML = 'Error sending message!';
submissionStatus.style.display = 'block';
console.error(error);
})
.finally(() => {
setTimeout(() => {
submissionStatus.innerHTML = '';
submissionStatus.style.display = 'none';
}, 5000);
});
});