Пользовательская проверка пароля не работает - PullRequest
0 голосов
/ 31 августа 2010

У меня есть форма для регистрации. Я проверяю, имеет ли пароль 6 символов, таких как:

<input type="password" runat="server" name="password" size="41" maxlength="64" id="txtpassword" /><span>*</span>&nbsp;&nbsp;&nbsp;&nbsp;
<asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ErrorMessage="Fill in a password." ControlToValidate="txtpassword"></asp:RequiredFieldValidator>
                    &nbsp;
<asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="valPassword" ErrorMessage="Password must be 6 characters long." ControlToValidate="txtpassword"></asp:CustomValidator>&nbsp;(at least 6 characters)

отделенный код

protected void valPassword(object source, ServerValidateEventArgs args)
{
    args.IsValid = ValidatePassword(args.Value);
}

private bool ValidatePassword(string pw)
{
    if (pw.Length >= 6)
    {
        return true;
    }
    else 
    { 
        return false; 
    }
}

Если я оставлю RequiredFieldValidator и CustomValidator вместе, и заполню 1 символ, форма будет принята.

Если я удаляю RequiredFiekdValidator и заполняю форму, форма принимается без символов в поле пароля

Если я покину CustomValidator и введу 1 символ, форма будет принята

Мой CustomValidator не работает должным образом, что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

может быть проблема с именем против идентификатора?Обычно я стараюсь, чтобы имя и идентификатор элемента соответствовали друг другу, чтобы избежать путаницы.

0 голосов
/ 31 августа 2010

попробуйте изменить txtpassword на <asp:Textbox> вместо ввода.

...