label的值怎么不自动消掉。。
运行结果:用户名有效!用户名无效,请重新输入!
当我输入一个正确的时候只显示 用户名有效。。。但是我输入一个错误的时候 运行结果:用户名有效!用户名无效,请重新输入!
也就是说上次运行的结果的那个label的值没有消掉。。下面是我的代码:
前台:
<asp:TextBox ID="TextuserName" runat="server" Height="25px" Width="180px" ></asp:TextBox>
<asp:Button ID="Buttuser" runat="server" Text="检测用户名" onclick="usertext"/>
<asp:Label ID="lb1" runat="server" ></asp:Label>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextuserName"
ValidationExpression="[a-zA-Z]\w{4,9}" ErrorMessage="用户名无效,请重新输入!" Text="用户名无效,请重新输入!"></asp:RegularExpressionValidator>
后台:
protected void usertext(object sender, EventArgs e)
{
if (RegularExpressionValidator1.IsValid)
{ //连接DB 检测是否被注册
lb1.Text = "用户名有效!";
}
else {
lb1.Text="";
return;
}
}
------解决方案--------------------
这是因为,出错的时候只是在客户端验证的,并没有执行服务器端的事件,客户端验证不通过,是不提交到服务器的。所以你的服务器端的代码根本就没执行。所以一致显示。你可以改成这样
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextuserName"
ValidationExpression="[a-zA-Z]\w{4,9}" ErrorMessage="用户名无效,请重新输入!" Text="用户名无效,请重新输入!"
EnableClientScript="false"></asp:RegularExpressionValidator>