Udostępnij za pośrednictwem


Zezwalanie tylko na niektóre znaki w polu tekstowym (C#)

Autor: Christian Wenz

Pobierz plik PDF

ASP.NET kontrolki sprawdzania poprawności mogą zapewnić, że tylko niektóre znaki są dozwolone w danych wejściowych użytkownika. Jednak nadal nie uniemożliwia to użytkownikom wpisywania nieprawidłowych znaków i próby przesłania formularza.

Omówienie

ASP.NET kontrolki sprawdzania poprawności mogą zapewnić, że tylko niektóre znaki są dozwolone w danych wejściowych użytkownika. Jednak nadal nie uniemożliwia to użytkownikom wpisywania nieprawidłowych znaków i próby przesłania formularza.

Kroki

Zestaw narzędzi kontroli AJAX ASP.NET zawiera kontrolkę FilteredTextBox , która rozszerza pole tekstowe. Po aktywowaniu w polu może zostać wprowadzony tylko określony zestaw znaków.

Aby to działało, najpierw potrzebujemy ASP.NET AJAX ScriptManager , który ładuje biblioteki JavaScript, które są również używane przez ASP.NET AJAX Control Toolkit:

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

Następnie potrzebujemy pola tekstowego:

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

Na koniec kontrolka FilteredTextBoxExtender zajmuje się ograniczaniem znaków, które użytkownik może wpisać. Najpierw ustaw TargetControlID atrybut ID na kontrolkę TextBox . Następnie wybierz jedną z dostępnych FilterType wartości:

  • Custom Domyślny; Musisz podać listę prawidłowych znaków
  • LowercaseLetters tylko małe litery
  • Numbers tylko cyfry
  • UppercaseLetters tylko wielkie litery

Custom FilterType Jeśli jest używany, ValidChars właściwość musi zostać ustawiona i podać listę znaków, które mogą być wpisywane. Dzięki temu: jeśli spróbujesz wkleić tekst do pola tekstowego, wszystkie nieprawidłowe znaki zostaną usunięte.

Oto znaczniki dla kontrolki FilteredTextBoxExtender , która zezwala tylko na cyfry (coś, co byłoby również możliwe z FilterType="Numbers"):

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

Uruchom stronę i spróbuj wprowadzić literę, jeśli język JavaScript jest włączony, nie będzie działać; cyfry są jednak wyświetlane na stronie. Należy jednak pamiętać, że ochrona FilteredTextBox nie jest sprawdzona na punkcie: jeśli język JavaScript jest włączony, wszystkie dane mogą zostać wprowadzone w polu tekstowym, dlatego należy użyć dodatkowych środków weryfikacji, tj. ASP. Kontrolki walidacji platformy NET.

Można wprowadzić tylko cyfry

Można wprowadzić tylko cyfry (kliknij, aby wyświetlić obraz pełnowymiarowy)