Freigeben über


Zulassen von nur bestimmten Zeichen in einem Textfeld (C#)

von Christian Wenz

PDF herunterladen

ASP.NET Validierungssteuerelemente können sicherstellen, dass nur bestimmte Zeichen in benutzereingaben zulässig sind. Dies verhindert jedoch weiterhin nicht, dass Benutzer ungültige Zeichen eingeben und versuchen, das Formular zu senden.

Überblick

ASP.NET Validierungssteuerelemente können sicherstellen, dass nur bestimmte Zeichen in benutzereingaben zulässig sind. Dies verhindert jedoch weiterhin nicht, dass Benutzer ungültige Zeichen eingeben und versuchen, das Formular zu senden.

Schritte

Das ASP.NET AJAX Control Toolkit enthält das FilteredTextBox Steuerelement, das ein Textfeld erweitert. Nach der Aktivierung kann nur ein bestimmter Satz von Zeichen in das Feld eingegeben werden.

Damit dies funktioniert, benötigen wir zunächst wie gewohnt den ASP.NET AJAX ScriptManager , der die JavaScript-Bibliotheken lädt, die auch vom ASP.NET AJAX Control Toolkit verwendet werden:

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

Dann benötigen wir ein Textfeld:

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

Schließlich kümmert sich das FilteredTextBoxExtender -Steuerelement um die Einschränkung der Zeichen, die der Benutzer eingeben darf. Legen Sie zunächst das TargetControlID -Attribut auf den ID des TextBox -Steuerelements fest. Wählen Sie dann einen der verfügbaren FilterType Werte aus:

  • Custom Standard; Sie müssen eine Liste mit gültigen Zeichen angeben.
  • LowercaseLetters Nur Kleinbuchstaben
  • Numbers Nur Ziffern
  • UppercaseLetters Nur Großbuchstaben

Wenn verwendet Custom FilterType wird, muss die ValidChars -Eigenschaft festgelegt werden und eine Liste von Zeichen bereitstellen, die eingegeben werden können. Übrigens: Wenn Sie versuchen, Text in das Textfeld einzufügen, werden alle ungültigen Zeichen entfernt.

Hier ist das Markup für das FilteredTextBoxExtender Steuerelement, das nur Ziffern zulässt (etwas, das auch mit FilterType="Numbers"möglich gewesen wäre):

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

Führen Sie die Seite aus, und versuchen Sie, einen Buchstaben einzugeben, wenn JavaScript aktiviert ist, funktioniert es nicht. Ziffern werden jedoch auf der Seite angezeigt. Beachten Sie jedoch, dass der Schutz FilteredTextBox nicht aufzählungssicher ist: Wenn JavaScript aktiviert ist, können alle Daten in das Textfeld eingegeben werden, sodass Sie zusätzliche Validierungsmittel verwenden müssen, z. B. ASP. Validierungssteuerelemente von NET.

Es dürfen nur Ziffern eingegeben werden.

Es können nur Ziffern eingegeben werden (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)