jQuery警告卸载,除非保存按钮被点击

jQuery alert on unload except when save button is clicked

本文关键字:按钮 保存 警告 卸载 jQuery      更新时间:2023-09-26

我有一个文本框,我希望它在离开未保存更改的页面时显示警报,除非您单击提交按钮。这个工作很好,除了它仍然提醒你,如果提交按钮被按下,我真的不知道如何修复它。

我有2个文件,我的Set.js采取BBcode的动作,和我的script.js

script.js

$(document).ready(function() {
    var saveClicked = false;
    $(window).bind('beforeunload', function() {
        if(y != $("#markItUp").val()) {
            if(!saveClicked) {          
                return 'You have unsaved changes!';
            }
        }
    });
});

Set.js

{
    name: 'Save',
    className:"miu-save",
    call: function() {
        $('form#edit').submit(); 
        saveClicked = true;
    }
},

change this

{
    name: 'Save',
    className:"miu-save",
    call: function() {
        $('form#edit').submit(); 
        saveClicked = true;
    }
},

{
    name: 'Save',
    className:"miu-save",
    call: function() {
        saveClicked = true; // true is called first here if you notice and then submit
        $('form#edit').submit(); 
    }
},

这也是必须的

var saveClicked = false;
$(document).ready(function(){

在文档外部声明saveclick var。准备好函数

把你的saveClicked放在document.ready的外面。这样它将是全局的,然后只有一个可以将其值设置为truefalse

所以你的脚本应该是这样的:
  var saveClicked = false;
  $(document).ready(function(){
$(window).bind('beforeunload', function(){
   if(y != $("#markItUp").val()){
     if(!saveClicked){           
   return 'You have unsaved changes!';
  }}
 });
});

我不确定这将工作,但也许如果你开始做

saveClicked = true;

只有

$('form#edit').submit();