繁体   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