Theo cách thuần túy Javascript, bạn có thể gửi biểu mẫu sau khi ngăn chặn mặc định.
Điều này là do HTMLFormElement.submit() không bao giờ gọi các onSubmit(). Vì vậy, chúng tôi đang dựa vào đặc điểm kỹ thuật đó để gửi biểu mẫu như thể nó không có trình xử lý gửi gửi tùy chỉnh ở đây.
var submitHandler = (event) => {
event.preventDefault()
console.log('You should only see this once')
document.getElementById('formId').submit()
}
Xem thao tác này để biết yêu cầu đồng bộ.
Chờ một yêu cầu không đồng bộ kết thúc cũng dễ dàng như sau:
var submitHandler = (event) => {
event.preventDefault()
console.log('before')
setTimeout(function() {
console.log('done')
document.getElementById('formId').submit()
}, 1400);
console.log('after')
}
Bạn có thể kiểm tra fiddle của tôi để biết ví dụ về yêu cầu không đồng bộ.
Và nếu bạn thất vọng với những lời hứa:
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')
}
Và đây là rằng yêu cầu .