Partager via


Autoriser seulement certains caractères dans une zone de texte (C#)

par Christian Wenz

Télécharger le PDF

ASP.NET contrôles de validation peuvent garantir que seuls certains caractères sont autorisés dans l’entrée utilisateur. Toutefois, cela n’empêche toujours pas les utilisateurs de taper des caractères non valides et d’essayer d’envoyer le formulaire.

Vue d’ensemble

ASP.NET contrôles de validation peuvent garantir que seuls certains caractères sont autorisés dans l’entrée utilisateur. Toutefois, cela n’empêche toujours pas les utilisateurs de taper des caractères non valides et d’essayer d’envoyer le formulaire.

Étapes

Le ASP.NET AJAX Control Toolkit contient le FilteredTextBox contrôle qui étend une zone de texte. Une fois activé, seul un certain ensemble de caractères peut être entré dans le champ.

Pour que cela fonctionne, nous avons d’abord besoin comme d’habitude de l’ASP.NET AJAX ScriptManager qui charge les bibliothèques JavaScript qui sont également utilisées par le ASP.NET AJAX Control Toolkit :

<asp:ScriptManager ID="asm" runat="server" />

Ensuite, nous avons besoin d’une zone de texte :

Numbers only: <asp:TextBox ID="TextBox1" runat="server" />

Enfin, le FilteredTextBoxExtender contrôle se charge de restreindre les caractères que l’utilisateur est autorisé à taper. Tout d’abord, définissez l’attribut TargetControlID sur le IDTextBox du contrôle. Ensuite, choisissez l’une des valeurs disponibles FilterType :

  • Custom Par défaut; vous devez fournir une liste de caractères valides
  • LowercaseLetters minuscules uniquement
  • Numbers chiffres uniquement
  • UppercaseLetters majuscules uniquement

Si est Custom FilterType utilisé, la ValidChars propriété doit être définie et fournir une liste de caractères qui peuvent être tapés. Au fait : si vous essayez de coller du texte dans la zone de texte, tous les caractères non valides sont supprimés.

Voici le balisage pour le FilteredTextBoxExtender contrôle qui autorise uniquement les chiffres (ce qui aurait également été possible avec FilterType="Numbers") :

<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
 TargetControlID="TextBox1" ValidChars="1234567890" />

Exécutez la page et essayez d’entrer une lettre si JavaScript est activé, cela ne fonctionnera pas ; toutefois, les chiffres s’affichent sur la page. Toutefois, notez que la protection FilteredTextBox fournit n’est pas à l’épreuve des puces : si JavaScript est activé, toutes les données peuvent être entrées dans la zone de texte. Vous devez donc utiliser des moyens de validation supplémentaires, par exemple ASP. Contrôles de validation de NET.

Seuls les chiffres peuvent être entrés

Seuls les chiffres peuvent être entrés (Cliquez pour afficher l’image en taille réelle)