2012-02-24 82 views
7

我目前正在嘗試刪除用戶瀏覽器完成的表單自動完成功能,因爲它填充了密碼字段,所以可能會導致一些關鍵行爲。我已經將autocompletion屬性添加到我的所有文本框中,但是當我嘗試使用Firefox時,它仍然將我當前的登錄信息加載到字段中。在MVC中刪除瀏覽器自動完成

做一個你找到解決這個問題的方式嗎?

在此先感謝。

編輯:由於它不清楚,我已經添加aucompletion屬性的值設置爲「關閉」。

+0

我更新了我的答案:) – gideon 2012-02-24 12:00:43

回答

16

html中有一個autocomplete=off屬性。

它在右上角的搜索框使用的就是此頁上,檢查你會看到HTML:

<input autocomplete=​"off" name=​"q" class=​"textbox" placeholder=​"search" ..... /> 

看到這個MDN文章:https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion

在MVC中,你將在此實現的形式或爲象這樣一個文本框:

Html.BeginForm(
    action, controller, FormMethod.Post, new {autocomplete="off"}) 

OR

Html.TextBoxFor(model => model.EmployerNumber, new {autocomplete="off"}) 
+1

添加到表單有時可以幫助如果添加到輸入不起作用(看着你,IE) – stuartdotnet 2013-11-11 03:55:31

0

您可以隨機化您的文本框的ID和名稱屬性 - 這將使瀏覽器自動完成功能無法正常工作。

我實現

鑑於:

<% 
    var guidString = Guid.NewGuid().ToString(); 
%> 
<%=Html.TextBox(guidString, String.Empty)%> 
<%=Html.Hidden("NameGuid", guidString) %> 

在控制器:

string userName = Request[model.NameGuid]; 
... 
+2

哇,你一直很快!我只是添加相同的答案! – Wizard79 2012-02-24 08:53:16

1

如果檢查HERE,在表格上設置autocomplete="off"應該做的伎倆。

+0

如果您檢查StackOverflow搜索框,您將看到他們以相同的方式實現了這一點。 – 2012-02-24 08:54:27

+0

是的!多數民衆贊成在我說:) – gideon 2012-02-24 08:55:46

+0

'

@Html.EditorFor(model => model.HashedPassword, new { autocomplete = "off" }) @Html.ValidationMessageFor(model => model.HashedPassword)
' 我已經設置autocompletion屬性關閉,但是當我檢查我的html源代碼它沒有輸入markdown中的屬性。 – Oflocet 2012-02-24 09:06:20