如何清除文本框的历史记录?我已设置 autocomplet=off 并将 AutoCompleteType 设置为 Disabled。当我在 Chrome / Firefox 中双击文本框时会出现历史记录/文本,因此当我单击它时,文本将插入到文本框中。有没有办法通过 ASP.NET / HTML 来阻止这种行为?
7 回答
您必须在表单上的这一行尝试
<form id="form2" runat="server" autocomplete="off">
您可以通过将 autocomplete 属性值设置为 off 来关闭特定 TextBox 的自动填充,如下所示:
<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”)
}
它应该修复它。
如果它在自动完成关闭时不起作用,请尝试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" 如果我认为它的机密信息也不能保存自动完成功能。
<%: Html.TextBoxFor(model => model.WEIGHT, new { autocomplete = "off" })%>
strong text在Input和form元素中测试autocomplete = "off"后,一无所获阅读这篇文章引导我了解浏览器如何处理自动完成的新现实,所以我测试了建议,似乎这个工作:设置 autocomplete="新密码”按照建议:
如果您正在定义一个用户管理页面,其中用户可以为另一个人指定新密码,因此您希望防止自动填写密码字段,您可以使用 autocomplete="new-password";但是,Firefox 尚未实现对这个值的支持。
尽管我将非密码输入元素设置为“新值”,这也可能适用于文章中的另一个建议:
在某些情况下,即使自动完成属性设置为关闭,浏览器也会继续建议自动完成值。这种意想不到的行为可能会让开发人员感到非常困惑。真正强制执行非自动完成的技巧是为属性分配一个无效值,例如:
autocomplete="nope"由于该值对于 autocomplete 属性无效,因此浏览器无法匹配它,并停止尝试自动完成该字段。
希望这对各种场景有所帮助和有用。
正如其他回答者所说,禁用文本框的 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");
}
希望这可以帮助!