Skip to content

Instantly share code, notes, and snippets.

@Log1x
Created January 22, 2019 01:25
Show Gist options
  • Save Log1x/2f8ed1c57c1a6ac01a6f046bf5c544b9 to your computer and use it in GitHub Desktop.
Save Log1x/2f8ed1c57c1a6ac01a6f046bf5c544b9 to your computer and use it in GitHub Desktop.
Vanilla AJAX with FormCarry
/**
* Form
*/
function init() {
if (document.forms[0] && window.FormData) {
const form = document.forms[0];
const button = form.querySelector('.button');
const request = new XMLHttpRequest();
request.open('POST', 'https://formcarry.com/s/XXXXXXXX', true);
request.setRequestHeader('accept', 'application/json');
form.addEventListener('submit', function (e) {
e.preventDefault();
const formData = new FormData(form);
button.disabled = true;
button.classList.add('is-loading');
request.send(formData);
request.onreadystatechange = function () {
if (request.status == 200) {
button.classList.remove('is-loading', 'is-primary');
button.classList.add('is-success');
button.innerHTML = 'Thank you!';
} else {
button.disabled = false;
button.classList.remove('is-loading', 'is-primary');
button.classList.add('is-danger');
button.innerHTML = 'Try again.';
}
}
});
}
}
export default {
init,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment