簡體   English   中英

取消form.submit()

[英]Cancel form.submit()

在javascript函數中,我以以下形式提交:
form.submit();

擁有大量數據

除了單擊瀏覽器的停止按鈕,是否可以取消此操作?

更新:

也許我沒有明確表示自己正在提交大文件。
在iframe中運行的帶有uploadcontrol的表單。

您可以執行類似Gmail的操作:撤消發送郵件(實驗室功能)。

它只是將郵件發送延遲了5秒鍾。 如果在那段時間內服務器收到undo AJAX呼叫,則不發送郵件。

這可能會增加服務器端的復雜性,但幅度不大。

在未發送信息的情況下,您可以使用以下方法

//IE
document.execCommand('Stop');
//Firefox
window.stop();

所以整個事情看起來像這樣(偽代碼):

stop_submit(current_id){
    try{
        document.execCommand('Stop');
    }catch(e){}
    try{
        window.stop();
    }catch(e){}

    AJAXCall("/myfolder/cancel_submit/", "id="+current_id, "post");
    return;
}

這是客戶端-服務器體系結構的經典問題。 發出HTTP請求后,就無法停止它了。 在所有請求之后,您將需要一種恢復狀態的方法,以確保一切恢復原狀。

現在,您可以使用AJAX並使用abort功能。 或者,您可以嘗試window.stop()document.execCommand("Stop") ,具體取決於您的瀏覽器。 但是那些不能解決請求已經發送的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM