Javascript Jquery在保留页面未保存更改之前发出警告
我有一个jquery对话框,它有一些剑道文本框、下拉列表和组合框。 如果用户进行了更改,我希望它在关闭带有未保存更改的对话框之前警告用户。当前,当我进行一些更改并尝试关闭模式时,它会发出警告。但问题是,如果我更改一个文本框,单击其他文本框进行编辑,它会一直发出警告。我只想让它在用户完成修改并尝试关闭对话框时警告用户一次 这是我的密码Javascript Jquery在保留页面未保存更改之前发出警告,javascript,jquery,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,Javascript,Jquery,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,我有一个jquery对话框,它有一些剑道文本框、下拉列表和组合框。 如果用户进行了更改,我希望它在关闭带有未保存更改的对话框之前警告用户。当前,当我进行一些更改并尝试关闭模式时,它会发出警告。但问题是,如果我更改一个文本框,单击其他文本框进行编辑,它会一直发出警告。我只想让它在用户完成修改并尝试关闭对话框时警告用户一次 这是我的密码 $('.ui-button').mousedown(function () { if ($(":input").change(functio
$('.ui-button').mousedown(function () {
if ($(":input").change(function (e) {
var dirtyFlagMsg = confirm('Are you sure you want to close without saving?');
if (dirtyFlagMsg == true) {
$("#popUpEdit").dialog("close");
$("#popUpNew").dialog("close");
}
else e.preventDefault();
}));
});
onbeforeunload事件将帮助您询问用户是否要离开页面
函数myFunction(){
返回“”;
}
尝试单击链接
onbeforeunload是一个帮助您询问用户是否要离开页面的事件
函数myFunction(){
返回“”;
}
尝试单击链接
首先,你在混合梨和苹果,jquerydialog
和onbeforeuload
是两件不同的事情。我认为您希望关闭对话框而不是窗口(问题的标题具有误导性)
您不需要跟踪每个mousedown
事件,您需要在关闭事件之前调用对话框上的函数
在对话框的beforeClose
事件中,检查是否存在脏字段,如果存在脏字段,则弹出确认消息,否则返回true,对话框将调用close事件
类似于此(未经测试):
当然,我使用普通浏览器确认,所以您需要使用自己的逻辑进行对话框确认。希望有帮助 首先,你在混合梨和苹果,
jquerydialog
和onbeforeuload
是两个不同的东西。我认为您希望关闭对话框而不是窗口(问题的标题具有误导性)
您不需要跟踪每个mousedown
事件,您需要在关闭事件之前调用对话框上的函数
在对话框的beforeClose
事件中,检查是否存在脏字段,如果存在脏字段,则弹出确认消息,否则返回true,对话框将调用close事件
类似于此(未经测试):
当然,我使用普通浏览器确认,所以您需要使用自己的逻辑进行对话框确认。希望有帮助 你能发布你的html结构吗?它只是以
开始,popUpEdit是模态,它包括很多@(html.Kendo().TextBox()
和combobox,DropDownList等等。我用id=“popUpEdit”处理jQuery中的所有内容。因此,我认为在html中做一些事情不会有任何帮助。请发布您的html结构。它只是以
popUpEdit开始,它是一种模式,它包括很多@(html.Kendo().TextBox()
)和combobox、DropDownlist等等。我正在使用id=“popUpEdit”处理jQuery中的所有内容。因此,我认为在html中执行某些操作不会有帮助。是的,这是窗口事件,字符串“”什么都不是。您可以添加一些逻辑,而不是替换return。好的,为什么您必须将onbeforeunload的值设置为:“return myFunction()”而不是“myFunction()”一个除了返回空字符串什么都不做的函数是如何导致该消息出现的呢?好问题,我为您提供了一个链接,您可以从中获取有关此窗口事件的信息。对话框中出现的默认语句,“确实要离开此页吗?…按“确定”继续,或按“取消”停留在当前页上。”,无法删除或更改。据我所知,它类似于alert()、confirm()和prompt()方法,无法设置样式。是的,它是窗口事件和字符串”“什么都不是。您可以添加一些逻辑来代替return。好的,为什么必须将onbeforeunload的值设置为:“return myFunction()”而不仅仅是:“myFunction()”一个除了返回空字符串什么都不做的函数是如何导致该消息出现的呢?好问题,我为您提供了一个链接,您可以从中获取有关此窗口事件的信息。对话框中出现的默认语句,“确实要离开此页吗?…按“确定”继续,或按“取消”停留在当前页上。”,无法删除或更改。据我所知,它类似于alert()、confirm()和prompt()方法,无法设置样式。
$("#dialog").dialog({
beforeClose: function(){
var isDirty = //logic for dirty check of inputs
if(isDirty){
if(confirm("Are you sure you want to close without saving?")){
return true;
} else {
return false;
}
}
return true;
}
});