In pure Javascript, you can submit the form after the default prevention.
This is because HTMLFormElement.submit() never calls onSubmit() . Therefore, we rely on this weird specification to submit the form as if it does not have a custom onsubmit handler.
var submitHandler = (event) => { event.preventDefault() console.log('You should only see this once') document.getElementById('formId').submit() }
See this script for a synchronous request.
Waiting for an asynchronous request to complete is just as simple:
var submitHandler = (event) => { event.preventDefault() console.log('before') setTimeout(function() { console.log('done') document.getElementById('formId').submit() }, 1400); console.log('after') }
You can check my script for an example of an asynchronous request.
And if you are not using promises:
var submitHandler = (event) => { event.preventDefault() console.log('Before') new Promise((res, rej) => { setTimeout(function() { console.log('done') res() }, 1400); }).then(() => { document.getElementById('bob').submit() }) console.log('After') }
And here is this request .
alairock Oct 26 '17 at 18:28 2017-10-26 18:28
source share