我有一個form.edit_recipe,我的目標是讓這個表單在頁面卸載之前成功保存(如果有新數據的話),而不需要用戶提示。jquery beforeunload submit form
這是JQ的關鍵位:
$(document).ready(function() {
$(window).bind('beforeunload', function() {
if (auto_save_timer) { // auto_save_timer == true means there are changes
$("#auto_save_overlay").css('display', 'block'); // shows a spinner
$(".edit_recipe").submit();
}
});
});
在點擊一個鏈接到下一個頁面,有時更改保存,有時他們不這樣做,即使是在相同的情況和數據集。
我99%確定我的其他變量和頁面上的JQ沒有影響到這一點,但如果需要的話,我可以更多地使用更多代碼示例。
我迷路了或者是什麼問題,但是我覺得這與表單數據被下一頁加載中斷有關。
有什麼建議嗎?編輯: 感謝您的建議,迄今爲止。我想我應該聽取@ see163的建議,也許考慮強迫用戶手動按保存按鈕,如果有未保存的更改,只需添加一個alert()
。這是一種更正統的方法嗎?如果.beforeunload
在Opera和Chrome中是垃圾,我應該使用哪些JQuery事件/操作來跨瀏覽器友好?
嘗試的.css之前調用.submit()() – maxhud
@maxhud謝謝你的建議,切換'.css'和'.submit'似乎可以提高這個速度,但它仍然無法保存更改。我希望「正確」的方式來做到這一點,而不是爲我的便便擦亮。 – RickyD