Freigeben über


Nur bestimmte Zeichen in einem Textfeld zulassen (C#)

von Christian Wenz

PDF herunterladen

ASP.NET Überprüfungssteuerelemente können sicherstellen, dass nur bestimmte Zeichen in der Benutzereingabe zulässig sind. Dies verhindert jedoch nicht, dass Benutzer ungültige Zeichen eingeben und versuchen, das Formular zu übermitteln.

Übersicht

ASP.NET Überprüfungssteuerelemente können sicherstellen, dass nur bestimmte Zeichen in der Benutzereingabe zulässig sind. Dies verhindert jedoch nicht, dass Benutzer ungültige Zeichen eingeben und versuchen, das Formular zu übermitteln.

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 übernimmt das FilteredTextBoxExtender Steuerelement die Einschränkung der Zeichen, die der Benutzer eingeben darf. Legen Sie zunächst das TargetControlID Attribut auf das ID des TextBox Steuerelements fest. Wählen Sie dann einen der verfügbaren FilterType Werte aus:

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

Wenn die Custom FilterType Eigenschaft verwendet wird, muss die ValidChars Eigenschaft festgelegt und eine Liste von Zeichen bereitgestellt werden, 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 von FilteredTextBox nicht vollständig sicher ist: Wenn JavaScript aktiviert ist, können beliebige Daten in das Textfeld eingegeben werden, sodass Sie zusätzliche Überprüfungsmethoden verwenden müssen, d.h. die Validierungssteuerelemente von ASP.NET.

Es können nur Ziffern eingegeben werden.

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