如果用户在某处写了某些内容,则在beforeunload上显示确认

时间:2015-07-29 08:27:36

标签: javascript jquery

我正在搜索一个事件jquery,当用户在页面上的某处写东西时开始。我发现.change()但它无法正常工作。

当用户更改页面内容时,我尝试创建一个变为true的标志。之后,我使用此标志显示弹出窗口。

所以我有变量和事件的代码:

<script>
        var flagChange = false;
            $(window).change( function(){
                alert ('je suis ici');
                flagChange = true; 
            });
</script>    

我在这段代码上使用了这个:

<script> 
        if(flagChange)
        {
            $(window).on('beforeunload', function(){
                return 'Les données non sauvegardées seront perdues. Voulez-vous vraiment quitter ?';
            });
        }
    </script>

但弹出窗口从未显示过。 有人能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

试试这个:

<script type="text/javascript">
jQuery(function($) {
    window.flag = false;
    $(document).on('keyup', function() {
        window.flag = true;
    });

    $(window).on('beforeunload', function() {
        if(window.flag) {
            return 'Les données non sauvegardées seront perdues. Voulez-vous vraiment quitter ?';
        }
    });
});
</script>

答案 1 :(得分:1)

  

$(window).change(function(){                   警报('je suis ici');                   flagChange = true;               });

这是不正确的。您需要为每个输入设置 .change()

在此处阅读更多文档:https://api.jquery.com/change/