搜索后,我发现了许多建议,但没有一个能解决问题。
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text=""></asp:TextBox>
在属性窗口中,TextBox 的 EnableViewState = True(此处建议)。我在 TextBox 中输入一个新值,然后按 Tab 键。if(IsPostBack...) 处的断点也没有发生任何事情。
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack && uid.Text != "" && pw.Text == "")
{
Do stuff
}
}
更新:我尝试过的其他文本框设置:
<asp:TextBox runat="server" ID="uid" Text="" AutoPostBack="True" OnTextChanged="UidTextChanged"></asp:TextBox>
protected void UidTextChanged(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('it works');", true);
}
和
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');" OnTextChanged="UidTextChanged"></asp:TextBox>
和
<asp:TextBox runat="server" ID="uid" AutoPostBack="True" Text="" onblur="__doPostBack('','');"></asp:TextBox>
每当 AutoPostBack 设置为 true 时,我都会在浏览器控制台中收到以下错误:
"Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function
__doPostBack
(anonymous function)"
当我设置了 onblur 属性时,我收到了完全相同的错误,除了它说的是 onblur 而不是匿名函数。