我想在用戶選擇DropDownList中的項目時顯示確認對話框。如果用戶按下「取消」,我想停止回發。下面是函數我添加到onchange事件:如何防止使用jQuery選擇DropDownlist時的AutoPostBack
function imitateConfirmUnload(event) {
if (window.onbeforeunload = null)
return true;
return confirm("Are you sure you want to navigate away from this page?\n\nYou have unsaved changes\n\nPress OK to continue or Cancel to stay on the current page.");
}
這是代碼在我的啓動腳本中的相關位的處理程序添加到事件:
function addConfirmToWarnClasses() {
$('.warn').change(function() {
imitateConfirmUnload()
});
}
的問題是,即使用戶選擇「取消」,也會發生回傳。如果我將處理程序移至click事件,它就會起作用。但對我來說感覺很笨拙。
編輯
更正:它不工作的onclick,因爲對話可以防止選擇,因此當用戶選擇OK,沒有任何變化已經發生,也沒有回傳當你想要它!
編輯2
DropDownList控件是一個UpdatePanel內部,使得可能影響行爲。
謝謝你的回答。它很快發現了兩個問題。我認爲這會解決它。令人驚訝的是,它沒有。回發仍然發生。 DropDownList在UpdatePanel中,所以我想知道這是否會影響行爲....? – Colin 2010-07-21 10:38:11
@Colin - 絕對是。 UpdatePanel完全改變了遊戲,當它試圖發佈時,它被捕獲並由Microsoft腳本處理。 – 2010-07-22 04:08:54