阻止浏览器用详细信息填充文本框
Posted
技术标签:
【中文标题】阻止浏览器用详细信息填充文本框【英文标题】:Stop browser from filling textboxes with details 【发布时间】:2011-02-07 12:40:36 【问题描述】:我遇到了一个非常烦人的问题,我希望这只是我错过的一个设置。我有一个 ASP.NET 应用程序,它允许用户在不同的地方输入他们的用户名/密码(例如登录、更改密码、更改用户名等)。当我登录时,浏览器询问我是否要存储用户详细信息。通常,我单击“否”,但这次我决定单击“是”。现在,我表单中的某些文本框已预先填写了用户名或密码。是否可以删除这些,因为它们有时会出现在不应预填充的文本框中。我尝试设置AutoCompleteType=none
和Text=''
,但它仍然被预填充。除了相同的CssClass
和密码框TextMode=password
之外,文本框没有太多共同之处。名称是不同的,尽管有时它们包含单词 name
(例如 fullName、userName)。有没有办法阻止浏览器填充某些文本框?
谢谢
【问题讨论】:
【参考方案1】: <input type="text" name="Username" autocomplete="off">
你也可以把它放在form
标签上。请注意,这并非在所有浏览器中都能始终如一地工作。
【讨论】:
facepalm :/.我正在使用 asp:textboxes 并假设 AutoCompleteType=none 会做同样的事情。谢谢! (我必须在 10 分钟内接受答复) 使用asp:TextBoxes时也可以使用AutoCompleteType="disable" 您也可以将 AutoCompleteType="Disabled" 用于 Telerik 控件【参考方案2】:对我有用的唯一解决方案是包含两个字段,一个用于登录,一个用于显示密码:无
<input type="text" style="display: none">
<input type="password" style="display: none">
【讨论】:
看起来你的答案需要更多解释,更好地编辑你的答案,而不是把代码放在评论中【参考方案3】:如果您设置 autocomplete="off"... 文本框将丢失其历史记录中的每个单词... 但是如果你想阻止浏览器保存用户名和密码,最好的方法是把这些标签放在你的页面顶部:
<input type="text" style="display: none">
<input type="password" style="display: none">
【讨论】:
我明白了!或者我们可以在同一个表单中添加一个新的隐藏输入【参考方案4】:<asp:TextBox ID="Text1" runat="server" AutoCompleteType="Disabled"></asp:TextBox>
如果您碰巧在更新得多的框架中工作,则此代码应该可以按预期工作。已经是 8 年前了,这里的一些答案已经过时了。
【讨论】:
请将此作为完整的答案,而不仅仅是没有解释的代码答案。 @petezurich 对此感到抱歉,我发现代码不言自明。 参考在哪里?你为什么使用禁用而不是关闭?各种浏览器对这两种不同的设置有何反应?这绝不是任何自我解释。【参考方案5】:在我的情况下,我需要两个:autocomplete="off" AutoCompleteType="Disabled"
我还在使用来自 rome.js 的时间选择器,并防止用户在 keydown 上输入文本框,这会使事情变得复杂。
<asp:TextBox ID="txtReturnTime" autocomplete="off" AutoCompleteType="Disabled" onkeydown="this.blur();" AutoPostBack="true" runat="server" ClientIDMode="Static"></asp:TextBox>
<script>
rome(txtReturnTime, date: false, min: '07:15', max: '15:31', timeInterval: 900 );
</script>
【讨论】:
以上是关于阻止浏览器用详细信息填充文本框的主要内容,如果未能解决你的问题,请参考以下文章