Javascript Window.onbeforeunload捕获触发事件的控件

时间:2011-12-01 18:24:37

标签: javascript asp.net-mvc-3

我有一个C#.NET MVC3 Web应用程序,我有一个与附加的Stackoverflow问题相关的问题。我正在使用window.beforeunload事件来查看我的View上是否有更改。如果是这样,我会提醒用户他们有未保存的更改。但是,如果他们选择了“创建(提交)”按钮,则会弹出警告用户的对话框。如果选中“创建”按钮,我不想弹出对话框。有任何想法吗?有没有办法看到点击了哪个控件?

1 个答案:

答案 0 :(得分:2)

我可以想到2个解决方案:

$('#submitBtn').click(function() {
    unbindOnBeforeUnload();
});

// OR

// maybe you have multiple cases where you don't want this triggered,
// so this will be better
var shouldTriggerOnBeforeUnload = true;
$('#submitBtn').click(function() {
    shouldTriggerOnBeforeUnload = false;
});
...
$(document).unload(function() {
    if (shouldTriggerOnBeforeUnload) {
        confirm();
    }
});

我用类似jQuery的语法编写它,但只是为了保持代码简洁,你可以将它调整到你想要的任何东西。