2010-05-24 89 views
0

如果用戶試圖在不保存更改的情況下嘗試離開頁面,則創建了一些代碼以彈出確認對話框。但是,如果用戶點擊了「保存」按鈕,我不想彈出確認對話框。從<a href>修改全局變量

我有我的文件的開頭部分代碼如下所示:

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

這將工作:

<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> 
+0

其實我試過,以及(我的代碼是完全一樣的,只是我調用的函數'submitForm()'),但它告訴我,「submitForm沒有定義「即使它拼寫正確(我將該名稱複製/粘貼到鏈接中)。 – 2010-05-24 03:04:21

+0

我弄明白了 - 我沒有意識到我在'$(function(){})'jquery塊中定義了submitForm()和confirmClose',這兩個問題都解決了我的問題。謝謝你的幫助。 – 2010-05-24 03:21:10