修改<a href=""></a>中的全局变量

时间:2010-05-24 02:05:06

标签: javascript variables

如果用户试图离开页面而不保存更改,我已创建了一些代码来弹出确认对话框。但是,如果用户单击“保存”按钮,我不希望弹出确认对话框。

我的文件顶部有一些代码如下:

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也无济于事。

我在这里做错了什么?

1 个答案:

答案 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>