2011-09-22 52 views
1

我有一個有4個表格的網頁。每行包含兩個帶數字值的文本框。文本框用來自服務器的數據填充。但是,發生了一些奇怪的事爲什麼我的數據在Firefox中進行F5刷新後四處移動?

如果我將數據添加到行中,請說第1行。然後刷新頁面...兩個值向下移動6行。我查看了在服務器上創建的數據,它絕對不是來自服務器。而且,HTML也不會顯示這些數據。

例如,

<input id="itemTypeRow6" class="ItemType" type="text" data-uniqueid="Some ID" value="">

值= 「」,但是查看的網頁,文本顯示2.(i的值輸入I擊中刷新之前)。

我確實有一些jQuery正在運行,但據我記得除了各種事件綁定之外,在這個頁面上沒有任何事情發生在document.ready上。

這是怎麼發生的? (僅限於Firefox [v4.0.1],不會在IE7中發生)

這隻發生在我執行F5刷新時。如果我走到地址欄並點擊<Enter>它不會發生。

我用<!DOCTYPE html>

+0

那麼值是否改變,或者它只是在你期望它被清除時堅持刷新? –

+0

@ImportedNoob - 後者。如果我能夠將數據簡單地遺忘,那麼這將解決問題。 –

+0

你使用html5文檔類型嗎? – simoncereska

回答

4

火狐嘗試通過定期(不硬)的重載保存表單值。實際上,所有瀏覽器都這樣做。

Firefox使用的特殊算法在面對DOM更改時效果不佳;它在頁面卸載時使用DOM中節點的位置來保存狀態,但使用頁面加載時的位置來恢復它。因此,如果這些不匹配,你會得到奇怪的行爲......

+0

有什麼辦法可以告訴瀏覽器過期緩存嗎? –

+3

您可以在窗體或單獨的控件上設置autocomplete =「off」,以防止它們在重新加載時被填充。當然,這也會關閉他們的自動完成功能......除此之外,我不知道一個好的非哈希方式。 –

相關問題