我在我的一个" C#"中有以下代码aspx页面。当我单击cmdPassword时,即使文本框为空,它也会触发事件。为什么不验证停止它?
<tr>
<td align="left" valign="top">Password:</td>
<td align="left" valign="top">
<asp:TextBox id="txtPassword" ValidationGroup="vgPassword" runat="server" Font-Size="Small" Width="200px" MaxLength=15 textmode="Password" />
<br /><font class="pagetext_7">(between 6 and 15 characters long)</font>
<br />
<asp:literal id="litPassword" runat="server"></asp:literal>
</td>
<td valign="top" align="left">
<asp:Button ID="cmdPassword" CausesValidation="true" runat="server" OnClick="cmdPassword_Click" validationgroup="vgPassword" style="color:#284E98;background-color:White;border-color:#507CD1;border-width:1px;border-style:Solid;font-family:Verdana;font-size:0.8em;" Text="Submit" height="20px" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="txtPassword" runat="server" ErrorMessage="*" validationgroup="vgPassword" />
<asp:regularexpressionvalidator id="valPassword" runat="server" validationgroup="vgPassword" errormessage="Password must be between 6 and 15 characters long" validationexpression="^.{6,15}$" controltovalidate="txtPassword"></asp:regularexpressionvalidator>
</td>
</tr>
更新:我刚刚将以下代码添加到按钮点击事件中。
protected void cmdPassword_Click(object sender, EventArgs e)
{
if (txtPassword.Text.Length == 0)
{
litPassword.Text = "<font color='red'>Password cannot be blank.</font>";
}
else
{
//Password update code
}
}
有没有人看到这样做的任何问题?
答案 0 :(得分:0)
如果文本框为空,通常regularexpressionvalidator
不会被触发。你的代码没有任何问题。如果你想要它也检查它甚至你的文本框是空的,你必须改变你的正则表达式。
答案 1 :(得分:0)
这就是我最终做到的方式
protected void cmdPassword_Click(object sender, EventArgs e)
{
if (txtPassword.Text.Length == 0)
{
litPassword.Text = "<font color='red'>Password cannot be blank.</font>";
}
else
{
//Password update code
}
}