登録フォームがあります。パスワードに次のような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 が正しく機能していません。何が欠けていますか?