2010-10-26 80 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