0

我有一个注册表格。我正在检查密码是否有 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 工作不正常,我错过了什么?

4

2 回答 2

0

也许名字与身份证有问题?我通常会尝试让元素的名称和 id 匹配以避免混淆。

于 2010-08-31T18:16:36.297 回答
0

尝试将 txtpassword 更改为 an<asp:Textbox>而不是输入。

于 2010-08-31T17:56:00.260 回答