簡體   English   中英

提交表單后延遲頁面卸載

[英]Delay page unload after submitting form

是否可以延遲在網頁上調用unload方法的時間? 我有N頁,每頁包含一個表格。 我不希望用戶單擊“提交”按鈕,所以我模擬了通過JavaScript對隱藏的“提交”按鈕的單擊。 每次用戶更改頁面都會激活此功能:

window.onbeforeunload = function() { 
    document.getElementById('submit_id').click(); 
}

這不起作用,但是如果我在.click()之后放置了警報

window.onbeforeunload = function() { 
    document.getElementById('submit_id').click(); 
    alert("submitting form"); 
}

一切都像魅力。 這是因為警報使表單有時間實際提交數據。 在沒有警報的情況下,頁面將在提交表單之前卸載,因此不會保存更改。

我試圖在.click()之后放置一個虛擬setTimeout

window.onbeforeunload = function() { 
    document.getElementById('submit_id').click(); 
    setTimeout(console.log("dummy"), 200);
}

但這沒用。 任何幫助或反饋對此將不勝感激。

如果使用jquery,則可以嘗試通過ajax保存。 並且可能將async添加到false,不推薦使用,但如果保存功能確實非常快,則可以在您的示例中使用。

http://api.jquery.com/jQuery.ajax/

這是我的保存方式:

var $form = $('#formId');
$.ajax({
    type: "POST",
    url: $form.attr('action'),
    data: $form.serialize(),
    error: function (xhr, status, error) {
       // error
      },
    success: function (response) {
       // sucess
     }
});

暫無
暫無

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

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