読者です 読者をやめる 読者になる 読者になる

【jquery】画面移動時のご作動防止2

先日、画面移動時のご作動防止という記事を書いた。

 

しかし、この記事通りにやると、フォームに何も変更を加えていなくても
絶対にalert画面が出力されてしまう。

つまり、少々というか、かなりウザい。

今回は、フォームに変更があるときだけ、
画面移動時のalert文を出力する方法を下記に記す。

 

    var isChanged = false;
    $(window).bind('beforeunload', function(){
        if(isChanged){
            return "登録は完了していません。";
        }
    });
    $('form input, form select, form textarea').change(function(){
        isChanged = true;
    });
    $("input[type=submit]").click(function() {
        isChanged = false;
    });

上記の文を JavaScript に貼り付けさえすれば、
いとも簡単に画面移動時のご作動防止ができる。