防止文本框自动填充先前输入的值

Posted

技术标签:

【中文标题】防止文本框自动填充先前输入的值【英文标题】:Prevent textbox autofill with previously entered values 【发布时间】:2012-03-13 14:38:29 【问题描述】:

我有一个带有一些文本框控件的 asp 页面。

默认情况下,浏览器会建议每个框之前输入的值。

我想阻止某些文本框出现这种行为。

有没有办法在所有主流浏览器中可靠地做到这一点?

我试过设置

AutoCompleteType="Disabled"

但这在 Firefox 中似乎没有效果。

这是我试图阻止的行为的图像。

【问题讨论】:

请注意,在 IE ***.com/questions/22328608/… 中似乎无法关闭自动完成功能 【参考方案1】:

火狐

要么:

<asp:TextBox id="Textbox1" runat="server" autocomplete="off"></asp:TextBox>

或来自 CodeBehind:

Textbox1.Attributes.Add("autocomplete", "off");

【讨论】:

asp 标记似乎会引发警告说“此属性允许的值不包括 'off'”,但添加第二个代码块中显示的属性有效! 第一行对我有用,忽略警告:P 这让我到达了我需要去的地方。对于 Telerik RadTextBox,它是 &lt;telerik:RadTextBox ... AutoCompleteType="Disabled" /&gt;【参考方案2】:

自动补全需要从文本框出发

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

【讨论】:

正如我上面的 cmets 所说,这似乎不再有效。需要通过代码使用 Attributes.Add 来完成,如上所示【参考方案3】:

通过使 AutoCompleteType="Disabled",

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

通过设置 autocomplete="off",

    <asp:TextBox runat="server" ID="txt_userid" autocomplete="off"></asp:TextBox>  

通过设置表单 autocomplete="off",

    <form id="form1" runat="server" autocomplete="off">  
    //your content  
    </form>  

通过使用.cs页面中的代码,

    protected void Page_Load(object sender, EventArgs e)   
      
        if (!Page.IsPostBack)  
          
            txt_userid.Attributes.Add("autocomplete", "off");  
          
      

使用 Jquery

    <head runat = "server" >  
        < title > < /title> < script src = "Scripts/jquery-1.6.4.min.js" > < /script> < script type = "text/javascript" >  
        $(document).ready(function()  
          
            $('#txt_userid').attr('autocomplete', 'off');  
        );  
    //document.getElementById("txt_userid").autocomplete = "off"  
    < /script>  

这是我的文本框,

    <asp:TextBox runat="server" ID="txt_userid" ></asp:TextBox>  

通过在代码中设置文本框属性,

    protected void Page_Load(object sender, EventArgs e)   
      
        if (!Page.IsPostBack)  
          
            txt_userid.Attributes.Add("autocomplete", "off");  
          
     

【讨论】:

设置 AutoCompleteType="Disabled" 在 SharePoint Web 部件中不起作用,它没有呈现任何内容。我不知道为什么。但是设置 autocomplete="off" 确实有效。【参考方案4】:

这就是答案。

&lt;asp:TextBox id="yourtextBoxname" runat="server" AutoCompleteType="Disabled"&gt;&lt;/asp:TextBox&gt;

AutoCompleteType="已禁用"

如果您仍然在 Firefox 浏览器中获得预填充框,那么它是浏览器的错。你得走了

'Options' --> 'Security'(tab) --> 取消勾选

'记住网站密码,然后单击“保存的密码”按钮删除浏览器保存的所有详细信息。

这应该可以解决问题

【讨论】:

你能解释一下为什么它会起作用,以便他可以从中学习吗?【参考方案5】:

从 CodeBehind 尝试:

Textbox1.Attributes.Add("autocomplete", "off");

【讨论】:

【参考方案6】:

autocomplete="new-password" 添加到密码字段就可以了。删除了 Chrome 中用户名和密码字段的自动填充。

<input type="password" name="whatever" autocomplete="new-password" />

【讨论】:

【参考方案7】:

请注意,要让 Chrome 正常工作,它需要 autocomplete="false"

【讨论】:

【参考方案8】:

这对我有用

   <script type="text/javascript">
        var c = document.getElementById("<%=TextBox1.ClientID %>");
        c.select =
        function (event, ui) 
         this.value = ""; return false; 
    </script>

【讨论】:

以上是关于防止文本框自动填充先前输入的值的主要内容,如果未能解决你的问题,请参考以下文章

如何防止Twitter typeahead用所选值填充输入?

HTML 输入自动填充占位符

防止 Notepad++ 使用选定/相邻文本自动填充搜索值

根据用户输入自动填充文本框

显示rest api json响应,如使用angular js的文本框自动填充

根据下拉值自动填充文本框