2010-08-31 56 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