2011-10-20 146 views
0

如何防止刷新頁面時的javascript alert窗口OK按鈕,用戶點擊。防止後刷新頁面彈出

<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="verify_complete()" /> 


function verify_complete() { 
     if (!chkCmnts()) { 
      alert("Categories/comments are required. "); 
      return false; 
         } 
          } 

感謝

BB

回答

0

您不能防止這一點,但你可以通過一個彈出窗口,他不應該重新加載通知用戶。這與onbeforeunload窗口事件,在MDN最好的證明來完成。

這在腳本的代碼

var controllVar = 1; 

添加到您的父窗口添加到您的彈出窗口。 (彈出窗口的window.open(...)返回)。這裏實際上是一些密集的錯誤檢測,因爲IE在它的各種口味顯示多個錯誤。

window.onbeforeunload = function (e) { 
    //here we try accessing the popup 
    try { 
     if(!popup && popup.controllVar != 1) { 
      return; 
     } 
    } catch(e) { 
    return; 
    } 

    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
    e.returnValue = 'YOUR ERROR MESSAGE'; 
    } 

    // For Safari 
    return 'YOUR ERROR MESSAGE'; 
}; 

這將在Stackoverflow上表現完全一樣,如果您向答案textarea添加一些文本並嘗試離開頁面。

<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="return verify_complete()" /> 

如果verify_complete()函數返回true它會回來後,如果沒有,也不會:

+1

他沒有問到這個問題-1。 – Icarus

1

所以你需要您的標記改爲您已經返回從JS錯誤。