さまざまなフォームを持つアプリの警告メッセージを作成しています。単純なページでは非常に簡単です。フォーム要素の変更を検出し、ユーザーがページをアンロードしたい場合は、警告メッセージを表示します。
しかし... 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;
});
そのスクリプトの問題は、ウィンドウが閉じるのを妨げていないことです。警告の前に close イベントが発生しているようです。このソリューションは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;
});
});