शुद्ध जावास्क्रिप्ट तरीके से, आप डिफ़ॉल्ट को रोकने के बाद फ़ॉर्म जमा कर सकते हैं।
ऐसा इसलिए है क्योंकि HTMLFormElement.submit() कभी भी कॉल नहीं करता है onSubmit()। इसलिए हम उस विनिर्देश विषमता पर भरोसा कर रहे हैं कि वह फॉर्म जमा करे, जैसे कि यहां एक कस्टम ऑनसुमिट हैंडलर नहीं है।
var submitHandler = (event) => {
event.preventDefault()
console.log('You should only see this once')
document.getElementById('formId').submit()
}
सिंक्रोनस अनुरोध के लिए इस फ़िडेल को देखें ।
समाप्त करने के लिए एक async अनुरोध की प्रतीक्षा करना उतना ही आसान है:
var submitHandler = (event) => {
event.preventDefault()
console.log('before')
setTimeout(function() {
console.log('done')
document.getElementById('formId').submit()
}, 1400);
console.log('after')
}
आप एक अतुल्यकालिक अनुरोध के उदाहरण के लिए मेरी फिडल की जांच कर सकते हैं।
और अगर आप वादे से नीचे हैं:
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')
}
और यहाँ यह अनुरोध है ।