我正在遠程提交一個表單,可能會連續多次提交表單。對於這種特殊情況,去除不是一種選擇。我正在尋找使用.submit()
提交的遠程表單的.abort()
的jQuery對等項,以便我可以取消之前提交的所有提交內容。殺死jquery ajax表單提交
由於提前, 加勒特
我正在遠程提交一個表單,可能會連續多次提交表單。對於這種特殊情況,去除不是一種選擇。我正在尋找使用.submit()
提交的遠程表單的.abort()
的jQuery對等項,以便我可以取消之前提交的所有提交內容。殺死jquery ajax表單提交
由於提前, 加勒特
也許需要時,你可以使用jQuery 排隊你的提交和.clearQueue()清除隊列。只是一個想法...
我不明白你的問題。如果表單已提交,則會向服務器發送請求...所以,如何中止該操作?
如果放棄你的意思,取消處理響應,只需使用增加/減少的控制變量來知道是否有掛起的請求。
從API:http://api.jquery.com/category/ajax/你不能這樣做。
我所做的是附着於形式的beforeSend事件,XHR對象存儲的表單數據的一部分,放棄它,如果一個新的請求入隊:
$('form').bind("ajax:beforeSend", function(evt, xhr) {
console.log('Enqueued new xhr request');
var prevXhr = $(this).data('current-xhr');
if (prevXhr) {
prevXhr.abort();
console.log('Aborting previous xhr request');
}
$(this).data('current-xhr', xhr);
});
,你仍然可以使用表格中的:remote => true
選項很簡單。
是的,我想取消處理回覆。問題在於服務器不一定按照接收請求的順序發回響應,所以一個簡單的請求計數器不會讓我確定哪個響應是最近的(除非我是愚蠢的並且沒有看到某些東西)。我可以在請求中包含計數器並將其返回,但如果可能的話,我希望避免服務器端參與。 – 2011-02-24 18:17:56