ASP.NET TextBox(HTML输入字段)在表单加载时自动填充用户名

时间:2011-08-01 14:58:44

标签: asp.net firefox autocomplete textbox passwords

5 个答案:

答案 0 :(得分:3)

简单解决方案:将文本框的自动完成属性设置为“关闭”

<asp:TextBox id="TxtPassword" Runat="server" Width="80" autocomplete="off" TextMode="Password"></asp:TextBox>

答案 1 :(得分:1)

在ASP.NET生命周期中,有两个事件负责回发后的维护数据。一个是LoadViewState,另一个是LoadPostBackData。如果实现IPostBackDataHandler接口的控件被LoadPostBackData事件中的Http Post数据的值加载。 TextBox控件不会从视图状态获取其值,而是从此事件中表单中的post数据获取。因此,即使您禁用TextBox控件的视图状态,如果它实现了IPostBackDataHandler接口,它也可以从HTTP post数据中获取其值。

If Page.IsPostBack(){
     yourTextBox.Text=string.empty;
}

http://forums.asp.net/t/1104194.aspx/1

还要看下面的内容:

http://www.codeproject.com/KB/aspnet/ASPViewStateandPostBack.aspx

答案 2 :(得分:1)

如果要查找文本是否在服务器端设置,可以尝试:

public class MyTextBox : System.Web.UI.WebControls.TextBox
{
      public override string Text
      {
         get
         {
            return base.Text;
         }
         set
         {
            base.Text = value;
         }
      }
}

在用户控件中使用此文本框而不是原始文本框,然后在setter上放置一个断点,并在到达时检查调用堆栈。

MacGyver的笔记:

添加一些说明。这不回答我的问题,但在证明文本未在服务器端设置时非常有用。这是一个自定义Web服务器控件( .vb文件),不要与自定义用户控件( .ascx文件,* .ascx.vb文件,有时* .ascx.Designer.vb文件)混淆)。我在这个类中添加了Render事件。我还必须导入2个名称空间。

导入System.Web Imports System.Web.UI.WebControls

Public Class MyTextBox     继承System.Web.UI.WebControls.TextBox

Public Overrides Property Text() As String
    Get
        Return MyBase.Text
    End Get
    Set(ByVal value As String)
        MyBase.Text = value
    End Set
End Property

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
    MyBase.Render(writer)
End Sub

结束班

在我正在实现此自定义Web服务器控件的页面中,我需要注册此类。

<%@ Register Assembly="Acu.LIMS.UI.Web" Namespace="Acu.LIMS.UI.Web" TagPrefix="MyTextBox" %>

<MyTextBox:MyTextBox id="txtKeywords" runat="server" Width="125px" AutoCompleteType="None" AutoComplete="False"></MyTextBox:MyTextBox>

答案 3 :(得分:0)

请参阅我的问题的底部以获取答案。这一切都解释了。本质上,Mozilla Firefox Password Manager将用户ID放入存储输入字段之前的最后一个输入字段中(基于存储在Mozilla Firefox Password Manager中的内容)。所以我只是在我的密码输入字段之前的Authentication控件中放置一个隐藏的虚拟文本框(或输入)字段。

这篇文章有一句话可以解释它,但我想我有更好的解释。

https://wiki.mozilla.org/Firefox%3aPassword_Manager

从上面的链接引用:
“然后使用usernamefield / passwordfield值作为提示,通过将网页与”name“属性相匹配来查找网页中的相应元素。”

答案 4 :(得分:0)

复制并且;将代码粘贴到您的页面部分。

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/jscript">
$(document).ready(function () {
setTimeout(function () {
$("input[type='password'],input[type='text']").val('');
}, 50);
}); 

</script>