Dengan cara Javascript murni, Anda dapat mengirimkan formulir setelah mencegah default.
Hal ini karena HTMLFormElement.submit() tidak pernah menyebut itu onSubmit(). Jadi kami mengandalkan keanehan spesifikasi tersebut untuk mengirimkan formulir seolah-olah tidak memiliki penangan kustom pengiriman di sini.
var submitHandler = (event) => {
event.preventDefault()
console.log('You should only see this once')
document.getElementById('formId').submit()
}
Lihat biola ini untuk permintaan sinkron.
Menunggu permintaan asinkron selesai sama mudahnya:
var submitHandler = (event) => {
event.preventDefault()
console.log('before')
setTimeout(function() {
console.log('done')
document.getElementById('formId').submit()
}, 1400);
console.log('after')
}
Anda dapat melihat biola saya untuk contoh permintaan asinkron.
Dan jika Anda turun dengan janji:
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')
}
Dan inilah yang request .