Javascript-Validierung: Sonderzeichen blockieren

8

Wie kann ich Benutzer daran hindern, Sonderzeichen in das Textfeld einzugeben? Ich möchte nur Zahlen und Alphabete eingegeben werden (getippt / eingefügt).

Irgendwelche Proben?

    
Shyju 25.05.2009, 10:30
quelle

6 Antworten

7

Sie haben zwei Ansätze dazu:

  1. Überprüfen Sie das "keypress" -Ereignis. Wenn der Benutzer eine Sonderzeichen-Taste drückt, halte ihn genau dort an
  2. Überprüfen Sie das Ereignis "onblur": Wenn das Eingabeelement den Fokus verliert, validieren Sie den Inhalt. Wenn der Wert ungültig ist, zeigen Sie eine diskrete Warnung neben diesem Eingabefeld an.

Ich würde die zweite Methode vorschlagen, weil sie weniger irritierend ist. Denken Sie daran, auch onpaste zu überprüfen. Wenn Sie nur den Tastendruck verwenden, können wir Sonderzeichen kopieren und einfügen. Verwenden Sie daher auch onpaste , um das Einfügen von Sonderzeichen einzuschränken

Außerdem schlage ich vor, dass Sie es sich noch einmal überlegen, ob Sie wirklich verhindern wollen, dass Benutzer Sonderzeichen eingeben. Weil viele Leute $, #, @ und * in ihren Passwörtern haben.

Ich nehme an, dass dies der Fall sein könnte, um SQL-Injection zu verhindern; Wenn ja: Es ist besser, dass Sie die Checks Server-Seite behandeln. Oder besser noch, entziehen Sie die Werte und speichern Sie sie in der Datenbank.

    
jrharshath 25.05.2009, 11:09
quelle
11

Probieren Sie dies aus, diese Funktion erlaubt alphanumerische und Leerzeichen:

%Vor%

in Ihrem HTML:

%Vor%     
qbtrance.com 19.06.2011 03:10
quelle
6

Für Sonderzeichen:

%Vor%     
dLcreations 20.08.2011 06:56
quelle
3

Verwenden Sie einfach einen geeigneten Onkeypress-Handler. Siehe Ссылка und das Beispiel Ссылка

    
Matthew Flaschen 25.05.2009 10:35
quelle
2

Es würde Ihnen helfen ... anzunehmen, dass Sie ein Formular mit dem Formular "Formularname" und ein Textfeld mit dem Namen "TXT" haben. dann können Sie den folgenden Code verwenden, um nur aphanumerische Werte zuzulassen

%Vor%     
Sourabh 25.05.2009 11:01
quelle
2

Ich denke, das Überprüfen von keypress -Ereignissen ist nicht völlig ausreichend, da ich glaube, dass Benutzer Kopieren / Einfügen in Eingabefelder einfügen können, ohne einen Tastendruck auszulösen.

So onblur ist wahrscheinlich etwas zuverlässiger (aber weniger unmittelbar).

Um wirklich sicherzustellen, dass Zeichen, die Sie nicht möchten, nicht in Eingabefelder (oder Textareas, etc.) eingegeben werden, denke ich, dass Sie

brauchen
  1. check keypress (wenn Sie sofort Feedback geben möchten) und
  2. überprüfen Sie auch onblur ,
  3. sowie die Validierung von Eingaben auf dem Server (dies ist die einzige Möglichkeit, sicherzustellen, dass nichts Unerwünschtes in Ihre Daten gelangt).

Die Codebeispiele in den anderen Antworten funktionieren gut für die clientseitigen Überprüfungen (verlassen Sie sich nicht nur auf only auf die Überprüfung von keypress -Ereignissen), sondern wie in der Übereinkunft angegeben Antwort, eine serverseitige Überprüfung ist wirklich erforderlich.

    
user2771097 12.09.2013 04:02
quelle

Tags und Links