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

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

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

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

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

我试过设置

AutoCompleteType="Disabled"

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

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

【问题讨论】:

标签: c# asp.net autofill


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案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】:

        这对我有用

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

        【讨论】:

          【解决方案7】:

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

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

          【讨论】:

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

          火狐

          要么:

          <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;
          猜你喜欢
          • 1970-01-01
          • 2021-12-03
          • 1970-01-01
          • 1970-01-01
          • 2020-04-24
          • 1970-01-01
          • 2011-10-24
          • 1970-01-01
          相关资源
          最近更新 更多