IE/Chrome/Safari/Opera/etc有預期的行爲。
我認爲這是一個錯誤,FF單擊刷新時實際上並未刷新字段。
畢竟,刷新的目的是從服務器上轉儲你已經重新加載的東西。對於Firefox然後將任何已更改的信息/字段重新合併到表單中是意想不到的行爲,恕我直言,設計不好。
另請注意,這個問題已在Mozilla for 10 years上發生了爭執。它是很多重複錯誤報告的來源,被許多人認爲是一個嚴重的失敗,而且很坦率地說是一個完整的PITA。我不知道有多少次我不得不向非技術人員解釋爲什麼重新加載按鈕不能重新加載頁面。
最近我剛剛告訴他們Firefox重新加載按鈕已損壞,他們必須按住Shift鍵來點擊刷新或使用不同的瀏覽器。謝天謝地,我們有選擇。
---更新由於評論指出分不清什麼F5和Ctrl-F5是 -
所有的瀏覽器(Firefox的除外)治療作爲F5 「刷新」。這意味着如果緩存被禁用,則從緩存或從服務器重新加載頁面。 Firefox不會重新加載,但它也會重新填充您輸入內容的所有框......只要這些字段仍然存在即可。恕我直言,這是不好的行爲,因爲頁面可能已經改變,並且最終處於非常無效的狀態,其中一些事物被填充而另一些則沒有。
要清楚,緩存不包含您在頁面中輸入的內容;緩存只包含服務器發送給您的內容。因此,Firefox本身需要嘗試合併之前輸入和未提交的數據。再次,沒有其他瀏覽器這樣做,這是一個很混亂的來源。
所有瀏覽器(包括Firefox)都將Ctrl F5視爲「從服務器重新加載」。這會忽略任何已緩存的文件(圖像,CSS,JavaScript等),並將其從服務器拉下來。值得慶幸的是,當您執行Ctrl-F5時,Firefox不會將未提交的數據合併回頁面。
我也試過 「的行爲:網址( '#默認#savehistory')」和自動完成無效 – RWW 2010-06-14 23:02:53
如果此功能非常重要,那麼只需編寫一個AJAX函數,將表單值轉儲到服務器上的會話中,然後使用另一個AJAX函數重新填充刷新時的字段。 – 2010-06-15 20:47:45