2010-06-29 57 views
2

演示鏈接: http://elevation-inc.com/dev/test/ieform/通過HTML在IE中禁用自動完成/預填充?

在IE 6/7/8 - 如果你進入一個術語成一個簡單的輸入框,提交表單,然後點擊後退按鈕 - 輸入字段保留先前提交的期限。如果您然後刷新頁面,該值也會保留。

如何通過HTML來禁用此預先填充?我們不想在頁面加載/ domready的輸入框中輸入任何值。

我們已經嘗試過autocomplete ='off'在表單和輸入元素上,但預填充仍然存在。

在此先感謝。

回答

2

嗯,我想這是瀏覽器的行爲,你不能繞過HTML。您可以在JavaScript做不過:

<script> 
window.onload = function() { document.forms.f.q.value = ""; }; 
</script> 

,或者如果你不想等待圖像加載(因爲在window.onload將等待), 可以使用文檔準備事件,描述here。 (它需要更多的調整,使其在所有瀏覽器工作)

+0

這似乎是最好的辦法,當它加上onDomReady事件。但是,需要將焦點狀態存儲在var中,以確保用戶輸入的文本不會被上述腳本意外擦除。我記得遇到了一些問題,如果用戶在腳本加載之前將焦點放在表單元素上,就無法準確檢測焦點狀態,這會使這種方法變得複雜。但這可能是可以解決的。更多評論請關注.. – jfroom 2010-06-30 01:09:45

+0

幸運的是,我們的應用程序中有一種替代方法,我們可以採取而不是清除該字段。相反,我們檢查該字段是否具有值onDomReady,並根據是否爲空來觸發相關功能。只是希望有一種更簡單的方法來通過HTML殺死IE的prepop'功能'。 – jfroom 2010-06-30 01:10:20

+0

那麼沒有理由區分。 onDomReady value =「」應該這樣做。如果沒有內容,則沒有任何反應,如果有內容將被刪除。 – galambalazs 2010-06-30 10:19:59

5

<input type="text" name="userid" autocomplete="off" />對我來說工作得很好(你的表格也一樣)。確保您在測試之間重新加載頁面(CTRL + F5以進行全面更新)。

2

這是IE瀏覽器是如何工作的,但你可以用JavaScript

更改值
<body onload="document.getElementById('q').value = '';"> 
<form action="http://www.google.com/search" name="f" autocomplete="off"> 
    <input type="text" name="q" autocomplete="off" id="q"><input type="submit"> 
</form>