2012-01-03 49 views
51

我正在爲我的網站製作註冊表單。它包含各種標準的表單字段。如:姓名,地址,電話號碼,用戶名,密碼等。啓用瀏覽器表單自動填寫

當我雙擊一個字段(在Chrome 16中),所以我可以自動填寫我的地址,我得到這個消息:

此網頁禁止自動填寫此表單。

我沒有禁用它,所以如何啓用它?我嘗試將autocomplete="on"添加到<form>標記和<input>(部分)標記中,但這並沒有幫助。

我需要爲每個字段添加autocomplete="on"嗎?另外,瀏覽器如何知道哪個字段是什麼?我需要爲這些領域命名一些特別的東西嗎?

另一個問題:是否有某種onautocomplete事件在窗體自動填充時被觸發?在我的表單中,當你輸入一個郵政編碼時,它會在我們的數據庫中查看(通過AJAX),然後得到州和城市(城市和州是下拉菜單,因爲郵政編碼可以用於多個城市),並填寫爲你。我希望在表單被自動填充後我可以運行它。

P.S.如果有問題,我使用jQuery form validation插件。

+0

新增自動完成=「上」到

標籤,僅此而已。現在在最近一小時左右清除您的歷史記錄並刷新頁面。希望這可能會有所幫助。問候 – 2012-01-03 17:21:46

+0

如果您有一個oracle帳戶,請登錄到該網站,然後單擊名稱旁邊的帳戶,該網頁自動完成關閉,您可以通過查看其源代碼查看該帳戶。 Regards – 2012-01-03 17:23:44

+0

@GagandeepBali:試過了,沒有幫助=(在''到''上添加了'autocomplete =',在Chrome的隱身模式下打開了頁面,當我嘗試自動完成地址欄時,錯誤的問題。 – 2012-01-03 17:24:13

回答

72

問題是表格標籤上沒有method="POST"

用谷歌搜索後,我發現一個bug report,和comments之一提到method="POST"

我加了method="POST",瞧!自動填充工程。

在某些情況下,如果表單沒有,您可能還需要添加actionaction="javascript:void(0)"工程。

注意:自動填充似乎會觸發onchange事件。

注2:關於瀏覽器如何知道哪一個領域是什麼,看到這個問題:How to trigger Autofill in Google Chrome?

+0

我還在我的表單中添加了method = POST,但通知仍然存在... Chrome 21 – 2012-08-30 13:32:50

+0

@PeterO .:您是否也給它一個'action'屬性? – 2012-08-30 13:53:08

+0

是的,它在那裏。 – 2012-08-30 14:06:09

3

關閉自動完成的選項通常位於表單標記中,請參閱Mozilla here中的開發者頁面。這應該意味着通常刪除該屬性應該在網頁上再次啓用該屬性。

關於第二部分的AJAX請求,我不認爲有一個監聽器,但你可以添加一個函數,例如每x秒檢查一次該字段的值,如果它改變了,你可以執行你的查詢。

+0

我想在*上打開自動完成*,而不是關閉。 – 2012-01-03 16:17:11

+0

我讓它更清晰一點。意思是說如果你可以通過添加該屬性來關閉它,你應該可以通過刪除屬性來啓用它。 – canihavesomecoffee 2012-01-03 16:18:32

+0

刪除''autocomplete''屬性(或在''上設置'autocomplete =')並未啓用它。我仍然可以看到此網頁已禁用Chrome自動填充此表單.'消息。 – 2012-01-03 16:19:32