簡體   English   中英

清除 ASP.NET 中的文本框歷史記錄

[英]Clear textbox history in ASP.NET

如何清除文本框的歷史記錄? 我已設置 autocomplet=off 並將 AutoCompleteType 設置為 Disabled。 當我在 Chrome/Firefox 中雙擊文本框時會出現歷史記錄/文本,因此當我單擊它時,文本將插入文本框中。 有沒有辦法通過 ASP.NET/HTML 阻止這種行為?

您可以通過將 autocomplete 屬性值設置為 off 來關閉特定文本框的自動填充,如下所示:

<asp:TextBox Runat="server" ID="TextBox1" autocomplete="off"></asp:TextBox> 

您可以在我的頁面(代碼隱藏)中的 Page_Prerender 事件中編寫一個文本框屬性。

protected void Page_PreRender(Object sender, EventArgs e) {

 TextBox1.Attributes.Add(“autocomplete”, “off”)

}

它應該修復它。

你必須在你的表格上嘗試這一行

<form id="form2" runat="server" autocomplete="off">

如果關閉自動完成功能不起作用,請嘗試在每次將頁面加載到瀏覽器時change the textbox/input name (not the Id) to a random value

您可以在窗口加載時使用 javascript 來完成,如下所示:

window.onload = function () {
    document.getElementById("yourTextboxId").name = "txt"+ Math.random();
}

我會嘗試這樣的事情

<asp:TextBox ID="TextBox1" AutoCompleteType="Disabled" runat="server"></asp:TextBox>

還有一個 TextMode="password" 如果它的機密內容也沒有保存自動完成我認為。

強文本輸入表單元素中測試autocomplete = "off"並且一無所獲閱讀這篇文章后,我對瀏覽器如何處理自動完成有了一個新的認識,所以我測試了建議,似乎這個建議有效:設置自動完成 =新密碼”如建議:

如果你正在定義一個用戶管理頁面,用戶可以在其中為另一個人指定一個新密碼,因此你想防止自動填寫密碼字段,你可以使用autocomplete="new-password" 但是,Firefox 尚未實現對這個值的支持。

盡管我將非密碼輸入元素設置為“新值”並且這也適用於文章中的另一個建議:

在某些情況下,即使自動完成屬性設置為關閉,瀏覽器也會繼續建議自動完成值。 對於開發人員來說,這種意外行為可能令人費解。 真正強制執行非自動完成的技巧是為屬性分配一個無效值,例如:

autocomplete="nope"由於此值對於 autocomplete 屬性無效,因此瀏覽器無法匹配它,並停止嘗試自動完成該字段。

希望這對各種場景有所幫助和有用。

<%: Html.TextBoxFor(model => model.WEIGHT, new { autocomplete = "off" })%>

正如另一個回答者所說,禁用文本框的 AutoCompleteType 屬性。

隱藏復制代碼

<asp:TextBox ID="TextBox1" runat="server" AutoCompleteType="Disabled"></asp:TextBox>

但這在 Mozilla Firefox 中不起作用。 最好的選擇是編寫一個 JavaScript onFocus 文本框來禁用自動完成行為。

隱藏復制代碼

Javascript:
Hide   Copy Code
function disableautocompletion(id){ 
    var passwordControl = document.getElementById(id);
    passwordControl.setAttribute("autocomplete", "off");
}

希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM