2011-07-24 62 views
6

防止丟失表單數據我正在創建一個包含數百行的數據網格,每行包含一個複選框,以便用戶可以從網格中選擇一個項目。通過導航離開頁面

現在用戶可能會花費大量的時間去過濾/搜索網格並勾選所需的複選框,只是意外按下鍵盤上的退格鍵或單擊頁面上的超鏈接。他們會失去他們所有的複選框選擇。

所以我想介紹一些功能,如果至少勾選了一個複選框,那麼如果用戶無意中做了一個操作,將它們導航離開頁面,則顯示JavaScript確認消息以通知用戶這個。

複選框將全部屬於同一組,例如它將被稱爲「產品」。

這可能嗎?

+1

您是否嘗試過查看HTML5的LocalStorage? – PhD

回答

10

當用戶導航時出現beforeunload事件:http://jsfiddle.net/FprNV/1/

返回一個字符串會導致消息出現兩個按鈕(停留/導航);這個對話框的確切實現在不同瀏覽器上有所不同。

$(window).bind('beforeunload', function() { 
    var checkboxcount = $("input:checkbox:checked").length; 
    if(checkboxcount > 0) { 
     return 'Are you sure?'; 
    } 
}); 
+0

它是否也適用於通過發佈不同的表單離開頁面? – TMS

+1

這是跨瀏覽器兼容嗎?瀏覽器可以禁用它嗎? (有些頁面誤用了這個功能,當你試圖關閉它們時真的很煩人) – TMS

+0

@Tomas Telensky:它適用於任何離開,也關閉窗口等。我不知道任何禁用它的方法,用戶可以使用。不過,它在所有主流瀏覽器上都能正常工作。 ...除了Opera和Safari我現在看到。而且似乎只有Chrome實際顯示了自定義消息,IE和Firefox顯示了一個通用的內置消息。 – pimvdb