0

我有这段小代码可以在离开页面之前检查表单字段是否有任何变化

$(document).ready(function(){

    var form = $('#submit-form'),
        original = form.serialize();
    form.submit(function(){
        window.onbeforeunload = null;
    });

    window.onbeforeunload = function(){

        if (form.serialize() != original)
            return 'Changes detected';
    };
});

它工作得很好。然后我将tag-it集成到我的页面中,上面的脚本不再工作了。如果我注释掉包含 tag-it.js 的行,它会再次起作用。我对javascript一无所知,我不知道为什么它不起作用。

这是 tag-it.js 脚本的链接(顺便说一句非常好)

https://github.com/aehlke/tag-it/blob/master/js/tag-it.js

编辑:

通过不工作,我的意思是如果我编辑表单并想离开页面,则没有任何弹出窗口。

如果我不包含 tag-it.js 文件(上面链接),一切正常,当我编辑表单并尝试离开页面时,我会弹出窗口。

4

1 回答 1

0

您应该检查 window.onbeforeunload 是否已经定义,如果是,那么您可以

如下调用旧的://第一个文件

 window.onbeforeunload = function(){

            if (form.serialize() != original)
                return 'Changes detected';
        };
    // other file
    var olderonbeforeunload = window.onbeforeunload;

    window.onbeforeunload = function(){
           if(typeof olderonbeforeunload == 'function'){
           olderonbeforeunload.apply(arguments);
         }
           // new code
        };
于 2012-09-11T12:47:12.933 回答