2015-03-25 6 views
0

У меня есть код ниже на одной из моих страниц aspx «C#». Когда я нажимаю на cmdPassword, он запускает событие, даже если текстовое поле пуст. Почему проверка не останавливается?RequiredFieldValidator и regularexpressionvalidator не работают

<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> 

UPDATE: Я просто добавил этот код к событию нажатия кнопки.

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

Вы пропускаете ValidationGroup в TextBox. – Kami

+0

Привет, Ками, спасибо за ответ. Я добавил группу проверки в текстовое поле, и событие щелчка кнопки все еще срабатывает. –

+0

remove CausesValidation = "true" – Kami

ответ

0

Обычно regularexpressionvalidator не уволен, если текстовое поле пуст. Так что ничего не получилось с вашим кодом. Если вы хотите его также проверить, даже если ваше текстовое поле пустое, вам нужно изменить свое регулярное выражение.

+0

Согласен, но почему RequiredFieldValidator не остановит событие щелчка при запуске? –

+0

просто добавьте это на свою кнопку, он будет работать CausesValidation = "True" не в текстовое поле – RASKOLNIKOV

+0

Я сделал, и он все еще не работает. –

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 
    } 
} 
Смежные вопросы