2011-05-23 41 views
2

在Web窗體中,當我編程取消選中之前選中的複選框時,瀏覽器會嘗試「記住」以前的狀態並在回發後再次檢查它們。如何防止瀏覽器記住複選框狀態?

有沒有類似autocomplete=off來完成這件事?無論如何,我怎樣才能防止瀏覽器檢查我想變得沒有選中的複選框?

+0

聽起來像ASP.Net,而不是瀏覽器 – hunter 2011-05-23 17:36:45

+0

沒有,我查了生成的HTML和複選框沒有「checked」屬性。 – Doug 2011-05-23 17:44:31

+0

你的頁面中有什麼ViewState? http://www.motobit.com/util/base64-decoder-encoder.asp – hunter 2011-05-23 17:47:42

回答

0

我相信一些瀏覽器(如FF)會嘗試記住表單數據。只需在帖子上更改表單名稱,它會認爲它是新的。

+0

更改字段名稱可以防止不需要的行爲,但會中斷回發機制。 – Doug 2011-05-24 20:10:22

+0

我試圖更改字段名稱並設法讓回發工作,但即使名稱不同,主要瀏覽器(IE,FF,Chrome)也會記住檢查狀態。也許他們是根據實地位置或其他事情做到這一點? – Doug 2011-05-24 20:36:03

+0

不是字段名稱,表格名稱。

。然而,這聽起來像其他事情正在進行,因爲我知道Chrome不記得字段值。一個腳本正在改變複選框或傳遞的HTML說應該檢查複選框。如果你可以發佈一個鏈接,那麼它可以被調試。 – mrtsherman 2011-05-24 20:46:09

0

可以運行一些JavaScript代碼(一旦DOM準備就緒,並且存在頁面上的複選框):

var allCheckboxes = document.querySelectorAll('input[type=checkbox]'); 

// loop on all checkboxes found (trick to iterate on nodeList) 
[].forEach.call(allCheckboxes, function (checkbox) { 
    checkbox.checked = checkbox.defaultChecked; 
});