2011-04-19 98 views
1

我已经提交按钮submit_marksheets,它提交标记之前,它会要求确认。Javascript onbeforeunload Jquery事件错误

我还有一件事是每当做出更改,用户将点击另一个页面,然后它会要求“保存更改”确认。

我在下面给出了这些代码。问题是,当我点击提交表格按钮时,它会发出警告。但是当我点击其他页面之后,onbefore卸载不会调用。我不知道为什么。

谁能告诉我如何解决这个问题?

$(':input', document.frmMarksheets).live("change", function() { 
    $('#submit_marksheets').live('click', function() { 
     setConfirmUnload(false); 
     return true; 
    }); 
    setConfirmUnload(true); 
}); 

function setConfirmUnload(on) { 
    window.onbeforeunload = (on) ? unloadMessage : null; 
} 
+2

'unloadMessage'是一个字符串还是一个函数? – 2011-04-19 14:50:04

回答

0

我不知道在你的代码问题的原因,但有麻烦与这种卸载确认,这是我所走的路线:

设置一个全局变量是你的指标是否发布消息:

var ConfirmPageExit = true; 
window.onbeforeunload = function(){ return (ConfirmPageExit) ? unloadMessage : null; }; 

现在,任何尝试退出都会触发您的消息。然后,对于任何想用来关闭消息的内容,只需将该var设置为false:

$('#submit_marksheets').live('click', function() { 
    ConfirmPageExit = false; 
});