Condividi tramite


Consenti solo determinati caratteri in una casella di testo (C#)

di Christian Wenz

Scaricare il PDF

ASP.NET controlli di convalida possono garantire che solo determinati caratteri siano consentiti nell'input dell'utente. Tuttavia, ciò non impedisce agli utenti di digitare caratteri non validi e di tentare di inviare il modulo.

Informazioni generali

ASP.NET controlli di convalida possono garantire che solo determinati caratteri siano consentiti nell'input dell'utente. Tuttavia, ciò non impedisce agli utenti di digitare caratteri non validi e di tentare di inviare il modulo.

Gradi

Il ASP.NET AJAX Control Toolkit contiene il FilteredTextBox controllo che estende una casella di testo. Una volta attivato, è possibile immettere nel campo solo un determinato set di caratteri.

Per questo funzionamento, è necessario prima di tutto il ASP.NET AJAX ScriptManager che carica le librerie JavaScript usate anche da ASP.NET AJAX Control Toolkit:

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

Quindi, è necessaria una casella di testo:

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

Infine, il FilteredTextBoxExtender controllo si occupa della limitazione dei caratteri che l'utente può digitare. Prima di tutto, impostare l'attributo TargetControlID sul componente ID del controllo TextBox. Scegliere quindi uno dei valori disponibili FilterType :

  • Custom Predefinito; è necessario fornire un elenco di caratteri validi
  • LowercaseLetters solo lettere minuscole
  • Numbers solo cifre
  • UppercaseLetters solo lettere maiuscole

Custom FilterType Se viene utilizzato , la ValidChars proprietà deve essere impostata e fornire un elenco di caratteri che possono essere digitati. A proposito: se si tenta di incollare testo nella casella di testo, tutti i caratteri non validi vengono rimossi.

Ecco il markup per il FilteredTextBoxExtender controllo che consente solo le cifre (un elemento che sarebbe stato possibile anche con FilterType="Numbers"):

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

Eseguire la pagina e provare a immettere una lettera se JavaScript è abilitato, non funzionerà; le cifre vengono tuttavia visualizzate nella pagina. Si noti tuttavia che la protezione FilteredTextBox fornita non è a prova di proiettile: se JavaScript è abilitato, qualsiasi dato può essere immesso nella casella di testo, quindi è necessario usare strumenti di convalida aggiuntivi, ovvero gli controlli di convalida di ASP.NET.

È possibile immettere solo cifre

È possibile immettere solo cifre (fare clic per visualizzare l'immagine a dimensione intera)