2008-09-09 296 views
14

當用戶在其瀏覽器上點擊刷新時,它會重新加載頁面,但會保留表單域的內容。雖然我可以看到這是一個有用的默認設置,但它可能會在某些動態頁面上很煩人,導致用戶體驗不佳。瀏覽器刷新行爲

有沒有一種方法,在HTTP標頭或等價物,來改變這種行爲?

+0

在你這樣做之前,因爲小心你的假設,即每個人都希望你清除表格,因爲我個人喜歡錶格數據在後退/前進期間可用。瀏覽器花了很長時間來做到這一點,我恨它消失! – 2008-09-14 19:01:31

+0

別擔心,我並沒有禁止所有形式的這種情況,只是少數情況下的假設沒有意義。 – 2008-10-10 18:30:44

回答

30
<input autocomplete="off"> 
0

我不知道,如果設置的頁面不通過meta標籤被緩存,將是解決這一問題? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html如果確實如此,那麼它將有利於禁用JavaScript的瀏覽器。

+0

實際上,我需要Javascript來處理頁面的各種其他位。 – 2008-09-10 18:38:28

6

這應該做的伎倆:

<body onload="document.FormName.reset();"> 

替換窗體名稱與形式的名稱,然後所有的字段將被重置,當用戶點擊他的瀏覽器刷新。

或者,如果你只是想重置某些字段,添加到你的頁面的底部:

<script type="text/javascript"> 
    document.getElementById('field1').value =''; 
    document.getElementById('field2').value =''; 
    document.getElementById('field3').value =''; 
</script> 

這將每一個用戶進入頁面時,包括更新

0

的重置的域表單上的數據不是w3c規範的一部分。這是一個讓您的生活變得輕鬆的瀏覽器功能。因此,如果您不想在重新加載後保留數據,您可以在加載後將所有表單的值設置爲null,如Espo所說。 即使頁面沒有被緩存,它也會在窗體上顯示數據,因爲數據不是頁面的html代碼的一部分。 你可以試試這個太(不知道是否會工作):

<input type="text" name="foo" value=""> 
3

添加autocomplete屬性設置爲「關閉」你不想被刷新的輸入。 例如:

<input type="text" name="pin" autocomplete="off" /> 

看到 the W3C reference

雖然在引用沒有提及,它的工作原理也與複選框,至少在Firefox。