2016-09-13 28 views
0

要求:我試圖在用戶離開頁面時提醒用戶其更改將會丟失。如何警告在離開頁面之前他們沒有保存的用戶。忽略回傳

問題:我正在使用webforms,並且我看到的唯一解決方案是警告用戶正在使用javascript的'window.onbeforeunload'。如果每發生一次回發都不會觸發,這將非常有效。

頁面描述:這是一個頁面繼承的母版頁。主頁面只是一個帶有幾個超鏈接的導航欄。內容頁面由多個文本框和幾個下拉選擇框組成。

問題:如何確定JavaScript事件window.onbeforeunload是否被回發或不回收(髒或不)?

謝謝你們,這是我問的第一個問題。希望我足夠描述。由於公司政策,我不能分享所有的代碼。任何問題我都會很樂意回答。

+0

嗯,我認爲解決的辦法是...使用'onbeforeunload'。但是,您可以使該函數檢測頁面是否「髒」(即不在回發中),並返回適當的值,反過來,該值將觸發對話框。 – vlaz

+0

可能的重複 - http://stackoverflow.com/questions/1119289/how-to-show-the-are-you-sure-you-want-to-navigate-away-from-this-page-when-ch – MPawlak

+0

請參閱:http://stackoverflow.com/questions/4787995/how-to-disable-beforeunload-action-when-user-is-submitting-a-form –

回答

0

爲此我們需要檢查是否有任何輸入字段或表單被編輯。

例子: 功能isDirty(形式){

for (var i = 0; i < form.elements.length; i++) { 
    var element = form.elements[i]; 
    var type = element.type; 
switch (type) { 

     case "checkbox": 
     case "radio":{ 
      if (element.checked != element.defaultChecked) { 
       return true; 
      } 
      break; 
     } 
     } 

}

相關問題