2009-06-14 4 views
1

Je suis en train de valider un contrôle TextBox multiligne comme suit:Comment valider un contrôle multiline asp: textbox en utilisant des validateurs personnalisés et JavaScript?

Ma page de contenu (j'utilise des pages maître) contient un contrôle de zone de texte avec un validateur personnalisé:

<asp:TextBox ID="IssueDescription" TextMode="MultiLine" 
    Columns="40" Rows="5" runat="server" CssClass="textbox"> 
    </asp:TextBox> 
<asp:CustomValidator ID="IssueDescValidator" runat="server" 
ErrorMessage="Please select a valid option" 
ClientValidationFunction="IssueDescValidation" 
ControlToValidate="IssueDescription"></asp:CustomValidator> 

Je suis en utilisant la propriété ClientValidationFunction pour effectuer la validation javascript. Le javascript se présente comme suit:

private static string IssueDescValidator() { 
    string issuedescvalidator = @" 
      function IssueDescValidation(sender, args) { 
       var issuedesc = document.getElementById(sender.controltovalidate); 
       if (issuedesc.innerText.length > 0) { args.IsValid; }; 
      }"; 

    return issuedescvalidator; 
} 

Le code de validation ci-dessus réside dans une classe Validator personnalisée, qui contient également le code de validation pour les contrôles de liste déroulantes que j'ai sur la même page contenu que cette zone de texte multi-lignes.

Pour une raison quelconque, mon validateur Javascript pour la zone de texte multiligne ne se déclenche pas lorsque la zone de texte ne contient aucun texte. Le problème est que c'est exactement la condition que j'essaie de valider. Lorsque je tape un texte aléatoire et que j'essaie de soumettre le formulaire, le validateur se déclenche.

Les listes déroulantes sont parfaitement validées. Je pense que je n'utilise pas la propriété correcte pour trouver la longueur de la zone de texte, mais je ne suis pas vraiment sûr de ce qui ne va pas à ce stade. Des idées?

Répondre

Questions connexes