2010-08-31 63 views
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并填写表格,该表格是在所有接受了没有字符在passwordfield

如果我离开的CustomValidator和我填1个字符,形式接受

我的CustomValidator工作不正常,我错过了什么?

+2

请哦,请问,如果你打算在半专业环境中提问,使用不是不是。 – 2010-08-31 17:57:05

+0

判断我的语言是无用的,我不是从英国或美国,除了它没有回答我的问题 – Janis 2010-08-31 18:11:17

回答

0

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

+0

我试过了,但仍然是同样的问题 – Janis 2010-08-31 18:11:51

0

可能是名称与ID的问题?我通常会尝试让元素的名称和ID匹配以避免混淆。

+0

改变了它,但没有,它不是技巧 – Janis 2010-08-31 18:38:04