[英]Prevent form data from submitting after http request
以下代碼阻止提交表單數據
$('#dataForm').submit(function (e) {
e.preventDefault();
});
我的問題是,如果存在需要花費時間才能獲得響應的ajax調用,該如何實現。 因此表單不會等到請求獲得響應
$('#dataForm').submit(function (e) {
ajaxCallAsPromise().then(function (data){
if (data == true)
{
e.preventDefault(); //this will not work
}
});
//any codes here works normally ..
});
我的目的是等待直到獲得請求響應,然后使用-
e.preventDefault();
您必須立即調用preventDefault()
才能停止提交表單。 無法避免這種情況,因為AJAX調用是異步的,您需要等待它。
但是,您可以在AJAX調用完成后在form元素本身上調用submit()
,以顛覆jQuery事件處理程序並將表單發送到服務器,如下所示:
$('#dataForm').submit(function(e) {
e.preventDefault(); // stop the submission
var form = this;
ajaxCallAsPromise().then(function(data) {
if (!data) { // if data is verified, submit the form again
form.submit();
} else {
// presumably you want to tell the user the data is invalid here...
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.