-1

フォームの変更をチェックするプロジェクトに取り組んでいます。ユーザーがフォームを送信したときにアラートが作成された変更を削除するのに苦労しています。

$(document).ready(function(){
    changes_made = false;

    $('input, select, textarea').on('change', function() {
        changes_made = true;
    });

    $(window).bind('beforeunload', function() {
        if(changes_made) { return 'You have made changes on this page.'; }
    });

    $('form').each(function() {
        $(this).on('submit', function() {
            changes_made = false; 
        });
    });
})
4

1 に答える 1

0

ユーザーが行った変更を元に戻したい場合は、フォームの元の内容を保存する必要があります。そうすれば、変更イベントを待つ代わりに、古いフォームの内容を新しい内容と比較し、必要に応じて置き換えることができます。

その他のヒント: 変数宣言の前に が必要ですvar(そうしないと、変数がウィンドウ オブジェクトにアタッチされてしまいます)。また、フォームの送信が ajax 呼び出しでない限り、changes_made を false に戻しても意味がありません。とにかく、ページがリロードされ、changes_made が再び false になります。

于 2012-06-25T20:32:41.680 に答える