2010-05-29 30 views
5

所以firefox有一個漂亮的機制,它會嘗試在頁面重新加載或使用後退按鈕時自動完成字段中的值。這是偉大的,除了當你有一個下拉式的東西,當設置爲一個值修改頁面使用AJAX。如何禁用firefox的表單自動完成而無需更改事件?

發生什麼事情是瀏覽器重新加載頁面,下拉列表中預先填充了記住的值,然後在dom準備就緒時不會觸發更改事件。因此附加的更改處理程序不會觸發,因此該頁面不會更新。

是否有一個很好的方式,預計「修復」這一行爲,使其適用於用戶:

a)我們希望瀏覽器自動完成,因爲這是一個良好的用戶體驗。

b)仍然希望onchange事件發射。

我現在唯一能想到的就是在文檔中添加一個準備就緒的事件,該文檔已經在表單中預先填入了初始值,當文檔加載javascript時,填充值和如果不匹配輸入內容將觸發更改處理程序。

任何人都有更好的解決方案?有沒有這樣做的lib?

(使用Rails 2.3.5 +的jQuery)

回答

1

不幸的是,當重新加載頁面或使用後退按鈕時,似乎沒有辦法從自動填充字段實際禁用Firefox。幸運的是,這些值在$(document).ready()事件中已經存在,只要這些輸入中的所有內容都可以具有.change甚至最初觸發它們,那麼這些值的來源並不重要,它只是起作用。

0

我想你可以添加autocomplete="off",以防止瀏覽器預填充這些字段。

您還可以使用運行onload的函數,並基本檢查該字段的值是否與參數value=""中指定的值相匹配。

+0

對不起,這只是複製我寫在我的問題。說實話,我不想禁用自動完成功能......我認爲我給出的解決方案必須是我使用的。 – 2010-06-02 12:51:18