使用jQuery编辑表单时确认离开页面

前端之家收集整理的这篇文章主要介绍了使用jQuery编辑表单时确认离开页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个表单,我需要一个像stackoverflow这样的功能:“你已经开始编写或编辑一个帖子”.

我浏览了stackoverflow的代码,看看它们是如何做到的,但是我根本就不能适用于我的简单表单.这是他们对问题

function initNavPrevention(b) {
    if (b.which == "undefined") {
        return
    }
    var a = $("#wmd-input");
    a.unbind("keypress",initNavPrevention);
    setConfirmUnload("You have started writing or editing a post.",a)
}

其中一个功能触发了这个(我不知道c是什么):

if (c) {
    e.keypress(initNavPrevention)
}

最后他们有setConfirmUnload(null);假设禁用它.

我的情况很简单我有一个页面,我加载了< form />通过AJAX,我想防止这种形式的加载离开页面而不点击提交按钮,或者如果用户点击取消,表单被禁用,并且预防将不会弹出.

有了这个代码,有人可以告诉我如何将它包含在我的网站上?

这是我的AJAX函数加载形式:

$("#projects_historics_edit_part_1").click(function(){
    $("#ajax-loader").fadeIn('normal');

    $.ajax({
        url: BASE_URL + 'projects/ajax/get_historics_edit_part_1/' + PROJECT_ID,type: "POST",success: function(data) {
            $("div#projects_historics_part_1").html(data);

            $("#client").autocomplete(client_autcomplete_options);

            var inicofin = $("#initdate,#findate").datepicker(initdate_datepicker_options);
        }
    });

    $("#ajax-loader").fadeOut("normal");

    return false;    
});

先谢谢你!

解决方法

你可以这样使用 window.onbeforeunload这样做:
window.onbeforeunload = function() {
    return 'Are you sure you want to navigate away from this page?';
};

所以在你的代码中,你可以把它放在$.ajax调用的成功回调中.

要取消确认,您可以这样做:

window.onbeforeunload = null;

另外,看到这个答案:How can I override the OnBeforeUnload dialog and replace it with my own?

原文链接:https://www.f2er.com/jquery/180511.html

猜你在找的jQuery相关文章