Hat jemand einen funktionierenden dynamischen Javascript-Eingabefilter, der Texteingaben über mehrere Browser hinweg begrenzt?
Ich habe mehrere Beispiele online gesehen, aber die meisten von ihnen scheinen Fehler zu haben oder es fehlt die Unterstützung für Multi-Browser.
Mein aktueller Versuch ist unten veröffentlicht, aber es ist fehlgeschlagen für verschobene Zahlen unter Firefox, und ich habe noch andere Browser nicht ausprobiert.
Wie Ссылка zeigt, ist das kein einfaches Problem.
Hat jemand eine bessere Lösung?
%Vor%Es würde über
verwendet werden <input type="text" name="pw[first_name]" size="15" maxlength="15" onkeypress="return isAlphaKey(event)">
Trapping von Tastaturereignissen wird sowieso nicht funktionieren, da der Benutzer immer Bearbeiten | verwenden kann Einfügen. Selbst wenn Sie eine browserübergreifende Lösung finden, kann der Benutzer immer alles umgehen, indem er Javascript deaktiviert.
Mit anderen Worten, verschwende deine Zeit nicht. Geben Sie dem Benutzer nur einen Fehler, wenn er versucht, ungültige Daten zu senden.
Würde ich nach der Eingabe ungültige Werte überprüfen und entfernen?
Das Überprüfen von charCode und keyCode kann im Browser ziemlich schwierig werden. Warum nicht den Wert prüfen, der tatsächlich zum Textfeld hinzugefügt wird?
Kehren Sie Ihre regulären Ausdrücke um und sie stimmen mit allem überein, was Sie nicht wollen . Sobald Sie dies haben, verwenden Sie einfach Ihren invertierten regulären Ausdruck, um Daten zu ersetzen, die in Ihre Eingabefelder eingefügt wurden, die Sie nicht möchten.
Ein kurzes Beispiel, das ich unter Ссылка erstellt habe, enthält ein Textfeld, das NUR Ganzzahlen akzeptiert. Es hat einen kleinen JavaScript-Block, der Nicht-Ziffern aus dem Feld entfernt:
%Vor%Und das Eingabefeld wird mit einem keyup-Ereignis deklariert, um alles einzufangen, was eingegeben wurde:
%Vor%Das ist sicher nicht perfekt. Dinge, die du noch tun musst:
Hier ist ein Weg, es zu tun:
Der Benutzer denkt, er tippt in das Feld, aber nicht.
Tags und Links javascript