Created
January 22, 2019 01:25
-
-
Save Log1x/2f8ed1c57c1a6ac01a6f046bf5c544b9 to your computer and use it in GitHub Desktop.
Vanilla AJAX with FormCarry
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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