Javascript-Validierung: Block Sonderzeichen
Wie kann ich verhindern, dass Benutzer die Eingabe von Sonderzeichen in das Textfeld ein. Ich will nur die zahlen und das Alphabet eingegeben werden ( Eingabe /Einfügen ).
Muster?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Ansätze:
Ich würde empfehlen die zweite Methode, weil seine weniger irritierend. Denken Sie daran, auch zu überprüfen
onpaste
. Wenn Sie nur die Tastendruck-Dann Können Wir es Kopieren und einfügen von speziellen Zeichen, so verwenden Sieonpaste
auch einzuschränken Einfügen von speziellen ZeichenDarüber hinaus werde ich auch vorschlagen, dass Sie überdenken, wenn Sie wirklich wollen, um zu verhindern, dass Benutzer die Eingabe von Sonderzeichen. Denn viele Menschen haben,$, #, @ und * in Ihrer Passwörter.
Ich nehme an, dass dies sein könnte, um zu verhindern, dass SQL-injection; wenn dem so ist: ist es besser, Sie behandeln die Kontrollen server-Seite. Oder noch besser, die Flucht der Werte und speichern diese in der Datenbank.
Versuchen, diese, diese Funktion erlaubt alphanumerische Zeichen und Leerzeichen:
in Ihre html:
document.all
zu bestimmen, Unterstützung füre.keyCode
? Warum nicht teste.keyCode
statt?&&
Vorrang vor||
.Für spezielle Zeichen:
Grundsätzlich nur mit einer entsprechenden onkeypress-handler. Sehen http://www.qodo.co.uk/blog/javascript-restrict-keyboard-character-input/ und das Beispiel http://www.qodo.co.uk/wp-content/uploads/2008/05/javascript-restrict-keyboard-character-input.html
Es würde Ihnen helfen... nehme an, Sie haben ein Formular "formname" - Formular und ein Textfeld mit "txt" name. dann können Sie verwenden Sie folgenden code, damit nur aphanumeric Werte
Ich denke, dass die überprüfung
keypress
Veranstaltungen ist nicht völlig ausreichend ist, wie ich glaube, dass können die Benutzer kopieren/einfügen in input-Boxen, ohne dass ein Tastendruck.So
onblur
ist wohl etwas zuverlässiger (aber weniger sofort).Wirklich stellen Sie sicher, dass die Zeichen, die Sie nicht wollen, sind nicht in Eingabefelder (oder Texteingabefelder, etc.), Ich denke, Sie werden müssen
keypress
(wenn Sie möchten, geben unmittelbares feedback) undonblur
,Die code-Beispiele in den anderen Antworten wird funktionieren, damit der client-Seite überprüft (nur nicht verlassen nur auf die Prüfung der
keypress
Veranstaltungen), aber wie gezeigt, in der akzeptierten Antwort, eine server-side-check wirklich erforderlich ist.Einige der Optionen sind veraltet wie heute. So watch out für diejenigen.
Wenn Sie versuchen
<input onkeypress="blockSpecialCharacters(event)" />
einer IDE wieWebStorm
wird slash outEreignisund sagen Sie:Dann, wenn Sie die JavaScript
console.log(e.keyCode)
auch gebenkeyCodeund sagen:Jedenfalls habe ich es mithilfe von jQuery.