2010-07-28 57 views
0

在我的Web應用程序中,我有一個包含多個輸入值的頁面,並且想要確認用戶想要離開頁面(如果用戶嘗試使用未保存的信息輸入)(類似於提示退出Microsoft Word時文檔上未保存的更改)。我想要顯示一條自定義信息:「您所做的更改尚未保存,您是否真的想離開頁面?」我怎麼能這樣做呢?在javascript中編輯提示

+0

確定soory爵士這樣的:但請給編輯提示 – 2010-07-28 07:50:03

+0

的解決方案,我需要它立即 – 2010-07-28 07:50:32

回答

2

您需要在所有輸入中使用change事件來檢測用戶所做的任何更改。此事件不會冒泡,因此您需要將其分別附加到每個輸入。然後,您需要使用window對象的beforeunload事件來提示用戶。

<script type="text/javascript"> 
    var anythingEdited = false; 

    function inputChanged() { 
     anythingEdited = true; 
    } 

    window.onbeforeunload = function(evt) { 
     if (anythingEdited) { 
      evt = evt || window.event; 
      evt.returnValue = "You have edited something. If you click OK, your changes will be lost."; 
     } 
    }; 
</script> 

First name: <input type="text" id="firstName" name="firstName" onchange="inputChanged();"> 
+0

它不能正常工作,先生。 Onbefore負載的Defalut消息也來了。我想顯示自己的自定義消息。但它也顯示默認消息 – 2010-07-30 04:48:24

+1

不幸的是,它是不可能實現你想要的。您可以按照上圖所示添加自己的消息,但無法防止默認消息出現。 – 2010-07-30 08:20:50

+0

Tim Down是正確的,瀏覽器添加了這個默認的消息,因爲垃圾郵件發送者曾經使用自定義消息來誘騙用戶留在網站上。 – nwellcome 2011-09-15 15:59:08