1

アンロード内で onbeforeunload を実行するために、次のコードを作成しました。ただし、これは機能していないようです。私のコードの何が問題なのか、とにかくそれを機能させるために誰かが知っていますか?

$(window).unload(function () {
    if ($('.submitAction').val() == "" && isChange) {
        window.onbeforeunload = confirmExit;
    }
});

function confirmExit() {
    return "If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
}
4

2 に答える 2

5

このonunloadイベントは、ユーザーがページから移動するかブラウザを閉じたときに発生する絶対的な最後のイベントです。

onbeforeunloadこのイベントはすでに発生しているため、イベントでイベントにバインドしてonunloadも意味がありません (したがって、onbeforeunloadという名前が付けられています)。解決策は、ページの読み込み時など、イベントが実際に発生する前onbeforeunloadにイベントにバインドすることです。

このようなもの(テストされていません):

$(window).bind('beforeunload', function () {
    if ($('.submitAction').val() == "" && isChange) {
       return "If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
    }
});
于 2012-09-17T01:46:33.643 に答える
0

この行は文字列を返します:

return "If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";

私はあなたが意味したと思います:

return window.confirm("If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?");
于 2012-09-17T01:49:22.723 に答える