【发布时间】:2013-01-25 19:12:43
【问题描述】:
我们正在为具有各种形式的应用创建警告消息。在简单页面中这很容易,我们只检测表单元素的变化,如果用户想要卸载页面,我们会向他们显示警告消息。
但是......我们在 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;
});
});
【问题讨论】:
-
不确定我是否理解您的问题...为什么不在关闭事件处理程序中实现您的测试,如果您不想关闭就阻止它?
-
因为剑道关闭事件发生在我的警报之前:/
-
按照@Pechka 的建议在关闭事件处理程序中添加警报。
标签: jquery events kendo-ui kendo-window