Jquery 如何使用模式窗口防止页面卸载
我想检查页面中是否有任何文本区域被更改,如果是,如果用户导航离开而未提交,则停止导航并弹出一个模式窗口(而不是onbeforeunload中的窗口),以检查用户是否真的要离开页面或留下并提交数据 到目前为止,我已经做到了:Jquery 如何使用模式窗口防止页面卸载,jquery,modal-dialog,Jquery,Modal Dialog,我想检查页面中是否有任何文本区域被更改,如果是,如果用户导航离开而未提交,则停止导航并弹出一个模式窗口(而不是onbeforeunload中的窗口),以检查用户是否真的要离开页面或留下并提交数据 到目前为止,我已经做到了: var needToConfirm = false; $("input,textarea").on("input", function () { needToConfirm = true; }); $("select").change(function () {
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,因为这是我目前知道的唯一方法。但我想用一个模态窗口替换它显示的窗口,因为这是用于站点周围其他警告或消息的窗口。我理解您正在尝试做什么。这是不可能的。你在任何网站上都看不到你描述的行为是有原因的。他们都使用本机警报,因为这是唯一的方法,而且永远不会改变。对不起,可能是重复的