Em uma forma de Javascript puro, você pode enviar o formulário após evitar o padrão.
Isso ocorre porque HTMLFormElement.submit()
nunca chama o onSubmit()
. Portanto, estamos contando com essa estranheza de especificação para enviar o formulário como se ele não tivesse um manipulador onsubmit personalizado aqui.
var submitHandler = (event) => {
event.preventDefault()
console.log('You should only see this once')
document.getElementById('formId').submit()
}
Veja este violino para uma solicitação síncrona.
Esperar que uma solicitação assíncrona termine é tão fácil:
var submitHandler = (event) => {
event.preventDefault()
console.log('before')
setTimeout(function() {
console.log('done')
document.getElementById('formId').submit()
}, 1400);
console.log('after')
}
Você pode verificar meu violino para obter um exemplo de solicitação assíncrona.
E se você está disposto a cumprir promessas:
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')
}
E aqui está o pedido .