5

さまざまなフォームを持つアプリの警告メッセージを作成しています。単純なページでは非常に簡単です。フォーム要素の変更を検出し、ユーザーがページをアンロードしたい場合は、警告メッセージを表示します。

しかし... 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.c​​om/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;
    });
});
4

2 に答える 2

9

その場で Windows を作成することは重要ではありません。それらを作成できる場合は、そのようなハンドラーをバインドできます。Alex Gyoshev が共有したコードがうまくいかない場合。

次のように、最初にハンドラーをバインドできます。

$("#window").kendoWindow({
    close:function(e){
        if (!confirm("are you sure?"))
        e.preventDefault();
    }
})

セットアップに関する詳細を共有してください。これらのアプローチのいずれかをケースに統合する方法があるはずです。

于 2013-01-25T20:49:25.800 に答える