2010-10-26 86 views
0

我想創建一個onbeforeunload「您已對頁面進行了編輯。留在此頁面上,離開此頁面」jQuery插件。window.onbeforeunload提示和技巧

該插件需要:

  1. 接受含元素。 $(".editableFieldContainer").beforeUnload()
  2. 自動檢測更改爲not(:hidden)輸入/ textarea /選擇。
  3. 如果包含元素中的元素髮生更改,提示用戶留在頁面上。
    • 除非頁面是通過表單提交的。
    • 除非頁面/用戶想要取消更改,例如按下「取消」鏈接/按鈕。

像這樣的東西(但不完全,它缺少一些功能):

(function(){ 
    var changed = false; 
    $.beforeUnloadCanceled = false; 
    $.fn.beforeUnload = function(){ 
     $.beforeUnloadCanceled = true; 
     return $(this).delegate("input,select,textarea", "change", function(){ 
      changed = true; 
     }); 
    }); 
    window.onbeforeunload = function(){ 
     if(changed && !beforeUnloadCanceled){return "You have made edits to the page.";} 
    }; 
}()); 

是否已有一個體面的插件,這是否?

回答

1

這可能是你要找的。

jquery.wtFormDirty-2.0.2.js

+0

看起來可能有一點工作做...和代碼氣味像臭雞蛋。但它是一個開始。謝謝! – 2010-10-26 18:00:00

+0

我只是提出了一個更新的版本。這看起來比舊的好.. http://wt-plugins.googlecode.com/files/jquery.wtFormDirty-2.js – code90 2010-10-26 19:22:43

+0

檢查您的選擇列表代碼路徑。它有點破碎。 – 2010-10-26 20:48:17