Wie verhindere ich, dass Sonderzeichen mit jquery in ein Eingabefeld eingegeben werden?
jquery
special-characters
alphanumeric
Nerd Stalker
quelle
quelle
Antworten:
Ein einfaches Beispiel mit einem regulären Ausdruck, den Sie ändern können, um zuzulassen / zu verbieten, was Sie möchten.
quelle
Ich suchte nach einer Antwort, die die Eingabe nur auf alphanumerische Zeichen beschränkte, aber dennoch die Verwendung von Steuerzeichen (z. B. Rücktaste, Löschen, Tabulator) und Kopieren + Einfügen zuließ. Keine der Antworten, die ich ausprobiert habe, hat alle diese Anforderungen erfüllt, daher habe ich anhand des
input
Ereignisses Folgendes gefunden .Bearbeiten:
Wie Rinogo in den Kommentaren hervorhob , zwingt das obige Code-Snippet den Cursor beim Eingeben in die Mitte des Eingabetextes an das Ende der Eingabe. Ich glaube, das folgende Code-Snippet löst dieses Problem.
quelle
event.which
oderevent.keycode
! Ich wünschte ich könnte +10!Kurze Antwort: Verhindern Sie das "Tastendruck" -Ereignis:
Lange Antwort: Verwenden Sie ein Plugin wie jquery.alphanum
Bei der Auswahl einer Lösung sind mehrere Dinge zu beachten:
Ich denke, dieser Bereich ist komplex genug, um die Verwendung eines Plugins eines Drittanbieters zu rechtfertigen. Ich habe einige der verfügbaren Plugins ausprobiert, aber bei jedem einige Probleme festgestellt, also habe ich jquery.alphanum geschrieben . Der Code sieht folgendermaßen aus:
Oder fügen Sie für eine feinere Steuerung einige Einstellungen hinzu:
Ich hoffe es hilft.
quelle
allow
Einstellung nicht funktionierte . Aber das ist das Schöne an jquery-Plugins, die Tatsache, dass Sie sie an Ihre Bedürfnisse anpassen können. Vielen Dank!allow
Option zu aktivieren, und es hat für mich mit diesem Code funktioniert:$('#firstName').alphanum({allow: "/"});
Gibt es eine Chance, dass Sie weitere Informationen bereitstellen können? Wenn es einen Fehler oder ein Problem mit den Dokumenten gibt, wäre es schön, ihn zu beheben. ProstallowOtherCharSets: false
und hatteallowCaseless: false
. Diese störten die eingestellten Einstellungenallow
. Aus meiner Sicht denke ich, dass dieallow
Option alle anderen Optionen (wieallowOtherCharSets
oderallowCaseless
) ablehnen sollte . Wenn Sie also ein Zeichen in derallow
Option angeben , sollte es unabhängig von den anderen im Konfigurationsobjekt festgelegten Optionen zulässig sein. Gleiches gilt fürdisallow
. Das ist aber nur meine Meinung. :) Nochmals Prost! :)allow
unddisallow
eine höhere Priorität zu haben. Es ist in Ausgabe 7 angemeldet . Hoffe es hilftVerwenden Sie das Mustereingabeattribut von HTML5!
quelle
Ihr Textfeld:
Ihr Javascript:
quelle
Verwenden Sie Regex, um etwas zuzulassen / zu verbieten. Bei einer etwas robusteren Version als der akzeptierten Antwort können Zeichen, denen kein Tastenwert zugeordnet ist (Rücktaste, Tabulatortaste, Pfeiltasten, Löschen usw.), zuerst durch Drücken des Tastendruckereignisses und Überprüfen Sie den Schlüssel anhand des Schlüsselcodes anstelle des Werts.
quelle
Schauen Sie sich das alphanumerische Plugin jQuery an. https://github.com/KevinSheedy/jquery.alphanum
quelle
Schreiben Sie einen Javascript-Code in das Ereignis onkeypress des Textfelds. Erlauben und beschränken Sie je nach Anforderung das Zeichen in Ihrem Textfeld
quelle
Ich benutze diesen Code, um andere zu ändern, die ich gesehen habe. Nur großartig für den Benutzer schreiben, wenn die gedrückte Taste oder der eingefügte Text den Mustertest (Übereinstimmung) besteht (dieses Beispiel ist eine Texteingabe, die nur 8 Stellen zulässt).
quelle
!e.charCode ? e.which : e.charCode
und nicht einfache.charCode ? e.charCode : e.which
?Dies ist ein Beispiel, das den Benutzer daran hindert, das Zeichen "a" einzugeben.
Schlüsselcode-Aktualisierung hier:
http://www.expandinghead.net/keycode.html
quelle
quelle
Ja, Sie können jQuery wie folgt verwenden:
und Skript für Ihre user_availability.php lautet :
Ich habe versucht, für / und \ hinzuzufügen, aber es ist mir nicht gelungen.
Sie können es auch mit Javascript tun und Code wird sein:
quelle
nur die Zahlen:
oder für die Zeit einschließlich ":"
auch einschließlich Löschen und Rücktaste:
Leider funktioniert es nicht auf einem iMAC
quelle
Wollte Alex 'Kommentar zu Dales Antwort kommentieren. Nicht möglich (brauche zuerst wie viel "rep"? Das wird nicht sehr bald passieren .. seltsames System.) Also als Antwort:
Die Rücktaste kann durch Hinzufügen von \ b zur Regex-Definition wie folgt hinzugefügt werden: [a-zA-Z0-9 \ b]. Oder Sie lassen einfach den gesamten lateinischen Bereich zu, einschließlich mehr oder weniger "nicht exotischer" Zeichen (auch Steuerzeichen wie Rücktaste): ^ [\ u0000- \ u024F \ u20AC] + $
Nur echtes Unicode-Zeichen außerhalb von Latein gibt es das Euro-Zeichen (20ac), fügen Sie hinzu, was Sie sonst noch brauchen.
Um auch Eingaben zu verarbeiten, die per Copy & Paste eingegeben wurden, binden Sie einfach an das Ereignis "change" und überprüfen Sie die Eingabe dort - löschen oder streifen Sie sie / geben Sie eine Fehlermeldung wie "nicht unterstützte Zeichen" aus.
quelle
Beschränken Sie Sonderzeichen beim Tastendruck. Hier ist eine Testseite für Schlüsselcodes: http://www.asquare.net/javascript/tests/KeyCode.html
In Angular brauchte ich ein geeignetes Währungsformat in meinem Textfeld. Meine Lösung:
Fügen Sie im HTML die Direktive hinzu
und im entsprechenden Winkelregler erlaube ich nur 1 Periode, konvertiere Text in Zahl und füge Zahlenrundung bei 'Unschärfe' hinzu.
quelle
Um Sonderzeichen zu ersetzen, setzen Sie Leerzeichen und konvertieren Sie in Kleinbuchstaben
quelle
quelle
Erlaube nur Zahlen in TextBox (Alphabete und Sonderzeichen einschränken)
quelle
quelle