Jquery 如何使用模式窗口防止页面卸载

Jquery 如何使用模式窗口防止页面卸载,jquery,modal-dialog,Jquery,Modal Dialog,我想检查页面中是否有任何文本区域被更改,如果是,如果用户导航离开而未提交,则停止导航并弹出一个模式窗口(而不是onbeforeunload中的窗口),以检查用户是否真的要离开页面或留下并提交数据 到目前为止,我已经做到了: var needToConfirm = false; $("input,textarea").on("input", function () { needToConfirm = true; }); $("select").change(function () {

我想检查页面中是否有任何文本区域被更改,如果是,如果用户导航离开而未提交,则停止导航并弹出一个模式窗口(而不是onbeforeunload中的窗口),以检查用户是否真的要离开页面或留下并提交数据

到目前为止,我已经做到了:

var needToConfirm = false;

$("input,textarea").on("input", function () {
    needToConfirm = true;
});

$("select").change(function () {
    needToConfirm = true;
});
function closeEditorWarning() {

if (needToConfirm) {
        var t = News;
        t.config.modalTitle.html("If you exit this page, your unsaved changes will be lost"), t.config.modalMsg.text("Are you sure you don't want to submit the changes?"), t.config.modalWindow.show(), t.config.modalAcceptBtn.on(click, null)
        return "null";
    }

}

window.onbeforeunload = closeEditorWarning();

有了这个,我得到了显示的模式弹出窗口,但是随后页面被卸载到用户立即选择的页面,忽略了模式窗口。那么,如何防止页面被卸载,并让页面等待用户确认他想离开而不提交更改?

这是不可能的。中断页面卸载的唯一方法是在
onbeforeunload
处理程序()中返回
String
消息


如果您所要求的是可能的,那么页面可能会无限期地保持打开状态,尽管用户请求关闭页面(显然,这不是好的行为)。

那么是否有其他处理程序可以使用?或者以其他方式防止/暂停卸载?我在那里使用了onbeforeunloa,因为这是我目前知道的唯一方法。但我想用一个模态窗口替换它显示的窗口,因为这是用于站点周围其他警告或消息的窗口。我理解您正在尝试做什么。这是不可能的。你在任何网站上都看不到你描述的行为是有原因的。他们都使用本机警报,因为这是唯一的方法,而且永远不会改变。对不起,可能是重复的