我们正在为具有各种形式的应用程序创建警告消息。在简单的页面中,这非常简单,我们只需检测表单元素的更改,如果用户想要卸载页面,我们会向他们显示警告消息。
但是...我们在 Kendo Windows 中也有一些表单,问题是如果用户想要关闭窗口,我们需要显示相同的确认消息。这是我们现在的脚本:
$('div:has(div[data-role="window"])').find('a:has(span.k-i-close)').live('click', function (e) {
if (formHasChanged) {
alert('pepe');
return false;
}
return true;
});
该脚本的问题在于它不会阻止窗口关闭,关闭事件似乎在我们的警报之前发生。 该解决方案可能有效http://www.kendoui.com/forums/ui/window/new-event-onclosing.aspx ,但我们的窗口是动态创建的。
有人知道如何解决这个问题吗?
提前致谢!
代码是我们想要插入这个剑道之类的解决方法:
var formHasChanged = false;
$('form.withWarningMessage').find('input,select,textarea').live('change', function () {
formHasChanged = true;
window.onbeforeunload = function () {
if (formHasChanged) {
return confirmWarningMessage;
}
};
$('input:submit').live('click', function () {
formHasChanged = false;
});
});
最佳答案
即时创建 Windows 并不重要。如果您可以创建它们,那么您可以绑定(bind)此类处理程序。如果 Alex Gyoshev 分享的代码不好。
您可以像这样绑定(bind)一个处理程序:
$("#window").kendoWindow({
close:function(e){
if (!confirm("are you sure?"))
e.preventDefault();
}
})
分享有关您的设置的详细信息,应该有一种方法可以将这些方法之一集成到您的案例中。
关于jquery - Kendo UI窗口关闭事件: prevent window close,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528778/