根据点击的按钮,jquery beforeunload消息

时间:2012-10-02 08:47:53

标签: javascript jquery

我在更改jQuerys beforeunload()功能时遇到问题,具体取决于用户操作。

$(document).ready(function() {
    $(window).bind('beforeunload', function() {
        if (billChanged == false) {
            return false;                    
        }
        else if ( savebutton was clicked ) {
            return false;
        }
        else { 
            return "refreshing page without saving, huh? you're a bad boy!";
        }
    }); 
}); 

我遇到的问题是,我无法想出一种方法来检查是否点击了“保存按钮”,如上面代码段中的else if子句中输入的那样。

表单本身非常复杂,我无法改变它。

2 个答案:

答案 0 :(得分:3)

$(document).ready(function() {
    var not_saved = true;
    $('#saveButtonId').on('click', function() {
        not_saved = false;
    })

    $(window).on('beforeunload', function() {
        if (not_saved && billChanged)
            return "refreshing page without saving, huh? you're a bad boy!";
        }
    }); 
}); 

答案 1 :(得分:0)

您可以定义全局变量。更改按钮的值onclick,然后在函数中检查

var clickedButton = false;

然后你的HTML

<input type="button" .... onclick="clickedButton=true;">

然后在你的函数中

else if ( clickedButton ) {
  return false;
}