2011-05-12 44 views
0

我已使用customfieldvalidator來檢查用戶名的長度。長度檢查是通過JavaScript函數完成的,我使用validatorcalloutextender來顯示錯誤消息。它工作不正常。使用CustomValidator和JavaScript驗證

<script type="text/javascript" language="javascript"> 

    function username_validate(src, args) { 
     args.isValid = args.Value.length >= 3; 
    } 
</script> 

<asp:CustomValidator ID="cvTxtUserName" runat="server" 
    ValidationGroup="vgroup" ControlToValidate="txtUserName" 
    ErrorMessage="Minimum 3 characters Required" Text="*" 
    SetFocusOnError="false" 
    ClientValidationFunction="username_validate"></asp:CustomValidator> 

<cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" 
    runat="server" Enabled="true" TargetControlID="cvTxtUserName"> 
</cc1:ValidatorCalloutExtender> 

這怎麼辦?

+0

當然,問題是什麼?你有錯誤嗎?你可能想嘗試'RegexValidator'這個簡單的東西。 – 2011-05-12 14:14:46

+1

它在做什麼/不做什麼?你是否證實了args.Value是你想要驗證的? – 2011-05-12 14:15:45

回答

0

您有套管問題,需要「IsValid」而不是「isValid」。最重要的是,如果該字段留空,您可能還需要一個RequiredFieldValidator。

所以你的Java腳本應該是

function username_validate(src, args) { args.IsValid = args.Value.length >= 3; }

我不認爲如果文本框爲空,驗證被激發,所以使用普通asp.net的RequiredFieldValidator以支付情況。而且,除了客戶端驗證和服務器端驗證之外,您還應該始終將客戶端驗證結合起來,因爲客戶端驗證可以規避。