如果用户试图离开页面而不保存更改,我已创建了一些代码来弹出确认对话框。但是,如果用户单击“保存”按钮,我不希望弹出确认对话框。
我的文件顶部有一些代码如下:
var confirmClose = false;
window.onbeforeunload = function(evt) {
if (confirmClose == true) {
message = "There are unsaved changes on this page. Are you sure you wish to leave?";
if (typeof evt == 'undefined') {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return message;
}
}
在页面的下方,我有一个链接,如下所示:
<a href="javascript:confirmClose=false;$('#stockForm').submit()" title="Save" class="button positive" id="stockFormSubmit">Save</a>
但是,这似乎不起作用 - 它似乎不会更改confirmClose
的值,而将其更改为window.confirmClose
也无济于事。
我在这里做错了什么?
答案 0 :(得分:1)
这将有效:
<script type="text/javascript">
var confirmClose = false;
window.onbeforeunload = function(evt) {
evt = evt || window.event;
if (confirmClose === true) {
message = "There are unsaved changes on this page. Are you sure you wish to leave?";
if (evt) {
evt.returnValue = message;
}
return message;
}
};
function saveAction() {
confirmClose=false;
$('#stockForm').submit();
return false;
}
</script>
<a href="#" title="Save" class="button positive" id="stockFormSubmit">Save</a>
<script type="text/javascript">
document.getElementById( 'stockFormSubmit' ).onclick = saveAction;
</script>