我有一张注册表。 我正在检查密码是否包含6个字符:
<input type="password" runat="server" name="password" size="41" maxlength="64" id="txtpassword" /><span>*</span>
<asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ErrorMessage="Fill in a password." ControlToValidate="txtpassword"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" OnServerValidate="valPassword" ErrorMessage="Password must be 6 characters long." ControlToValidate="txtpassword"></asp:CustomValidator> (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工作不正常,我错过了什么?
答案 0 :(得分:0)
尝试将txtpassword更改为<asp:Textbox>
而不是输入。
答案 1 :(得分:0)
可能是名称与ID的问题?我通常会尝试将元素的名称和ID匹配以避免混淆。