Sie haben zwei Ansätze dazu:
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.
Probieren Sie dies aus, diese Funktion erlaubt alphanumerische und Leerzeichen:
%Vor%in Ihrem HTML:
%Vor% 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
brauchenkeypress
(wenn Sie sofort Feedback geben möchten) und onblur
, 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.
Tags und Links javascript validation