2014-04-17 95 views
0

我有一個表單,它包含輸入字段,gridview和buttons.I要警告用戶在從Form導航時丟失數據。在Firefox(5)中,Chrome可以正常工作,但即它不。在這裏我給我的劇本window.onbeforeunload不能在IE中工作

<script type="text/javascript"> 

    function setConfirmUnload(on) { 

     window.onbeforeunload = (on) ? unloadMessage : null; 

    } 
    function unloadMessage() { 

     return 'You have entered new data on this page.' + 
    ' If you navigate away from this page without' + 
    ' first saving your data, the changes will be' + 
    ' lost.'; 
    } 
    $(document).ready(function() { 

     $(':input', document.aspnetForm).bind(
     "change", function() { 
     setConfirmUnload(true); 
    } 
     ); // Prevent accidental navigation away 
    }); 
</script> 

在提交按鈕,我宣佈OnClientClick="setConfirmUnload(true);"

任何人都可以有任何想法,這個。請幫我

感謝

+0

我剝出了jQuery'ready'功能,只是叫'setConfirmUnload(真)'內頁和它的工作正常。我的猜測是a)你有一個在'IE'下觸發的錯誤,而不是'Chrome'或者有'HTML'佈局錯誤,這意味着你的'selector'不工作。把'console.log'放在ready語句中,並跟蹤那裏發生的事情。 –

+0

Thinks很多..但我的頁面包含很多gridviews添加按鈕。如果我按照你的做法,在GridView的分頁也顯示警報框。如何停止這種警報在分頁。和在GridView的下一頁如果我正在做任何更改警報不會來。是否有任何解決方案? – Madhu

+1

您尚未提供足夠的信息。我/我們不知道你的HTML是什麼樣的。我唯一能做的就是我所做的 - 指出問題的最可能來源,以幫助您縮小範圍。 –

回答

-1

做到這一點 -

OnClientClick="return setConfirmUnload(true);" 
+0

'setConfirmUnload()'不返回任何東西,那麼用'return'使用它有什麼意義? – Barmar

+0

這是來自官方微軟網站-http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onbeforeunload.htm – Hrishi

+0

也許它假定該函數實際返回的東西。或者,也許你需要建議他改變函數來返回一些東西。 – Barmar