2013-10-19 76 views
1

我有一個ASP.NET webform。除了自定義驗證器之外,我所有的驗證器都完成了他們的工作。據我所知我的代碼是正確的,但他沒有顯示錯誤。看起來他不會調用我的JavaScript函數或我的代碼隱藏功能。自定義驗證程序沒有顯示錯誤

這裏是我的代碼

的JavaScript

<%-- javascript--%> 
<script type="text/javascript" > 
    function validateNaam(oSrc, args) { 
     var voorNaam = document.getElementById("Voornaam");; 
     var regex = /^[a-zA-Z ]{2,30}$/; 

     if (voorNaam.match(regex)) { 
      alert("Gelieve geen ongeldige tekens te gebruiken voor uw naam aub."); 
      return false; 
     } 
    } 

</script> 

APS自定義驗證

<%-- Gebruikersnaam label, textbox en validator --%>&nbsp;<asp:Label ID="Label1" runat="server" AssociatedControlID="Email">Voornaam: </asp:Label> 
          <asp:TextBox runat="server" ID="Voornaam" /> 
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Voornaam" 
           CssClass="field-validation-error" ErrorMessage="The user name field is required." /> 
          <%-- Custom validator voor naam --%> 
          <asp:CustomValidator ID="CustomValidatorGebruikersnaam" runat="server" 
           CssClass="field-validation-error" ErrorMessage="Uw naam bevat ongeldige tekens" 
           ValidationGroup="AllValidators" OnServerValidate="CustomValidatorGebruikersnaam_ServerValidate" 
           ClientValidationFunction="validateNaam" ControlToValidate="Voornaam">!!</asp:CustomValidator> 

和代碼背後

protected void CustomValidatorGebruikersnaam_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    try 
    { 
     args.IsValid = Validatie.ControleerNaam(args.Value.ToString()); 
    } 
    catch 
    { 

     args.IsValid = false; 
    } 

} 

回答

1

你有一個驗證組上的自定義VAL idator。

您沒有發佈的按鈕代碼必須沒有驗證組。

刪除此ValidationGroup =「AllValidators」,它應該工作。

+0

我現在得到自定義驗證器的文本,如果它是錯誤的,但沒有出現錯誤消息或javascript警報 – Robin

+0

你看過正則表達式驗證器嗎?我想你可以用它來代替。本文將舉例說明。 http://msdn.microsoft.com/en-us/library/ff650303.aspx – hutchonoid

+0

非常感謝,我會看看這個 – Robin

相關問題