1
我檢測形式在頁面改變提交按鈕,等我處理完排除從beforeunload事件
$('#element').change(function(){
metaDataChange = true;
});
,這樣當用戶離開頁面和做出更改在窗體中的輸入。他/她將被提醒是否要離開或留在頁面上,就像在Facebook中嘗試發佈狀態然後離開頁面一樣,將會彈出一個對話框,提供給您離開或留下的選項在頁面中。
$(window).on('beforeunload', function() {
if(metaDataChange === true || basicInfoChange === true){
return "You have unsaved changes, do you want to leave without saving?";
}
});
上面的代碼工作正常,但是..我想排除此提交按鈕。 因爲當我點擊「提交」和提交按鈕的行爲意味着重定向到另一個頁面。當他/她打算保存他/她的更改時,將再次用相同的消息提示用戶。
如何排除提交按鈕被窗口的beforeunload事件捕獲?我很難解釋這一點...我希望可以理解..謝謝!
爲什麼我沒有想到這個!這工作!謝謝你,先生..你能給我一個想法如何工作?我的意思是兩個事件.click()和.on('beforeunload')都是由提交按鈕觸發的,在'beforeunload'得到它之前,.click()按鈕如何獲取以更改變量'metaDataChange'?i以爲它們是同時執行的? – muffin
@YiiNewbie點擊事件首先發生,因爲這就是實際發生的事情 - 用戶點擊元素。現在,如果我們不以某種方式取消它,那麼默認操作是重定向到另一個頁面 - 但是直到click事件已經處理並落入默認值(內置於瀏覽器中)纔會發生這種情況)處理程序。例如,如果點擊處理程序返回false,則默認行爲也會被取消。 – jcsanyi
哦,我明白了......沒錯,我明白了......非常感謝! :) – muffin