Wie deaktiviere ich die Rücktaste, wenn sich etwas anderes als 2 spezifische Eingabefelder auf die Verwendung von jquery konzentrieren?
Hier ist mein aktueller Code (JETZT INKLUSIVE 2 TEXTBOXEN):
%Vor%das funktioniert aber nicht .... irgendwelche Ideen?
Ich denke, das würde den Trick bewirken:
%Vor%unter der Annahme, dass die Textfelder die Klasse 'textInput' haben.
Dadurch wird die Rücktaste auf Ihrer Site deaktiviert, ohne dass den Eingabefeldern bestimmte Klassen hinzugefügt werden müssen. Um die Rücktaste außer bei Verwendung von Eingabefeldern zu deaktivieren, verwenden Sie .is ("input: focus") , wenn Sie die Rücktaste deaktivieren möchten, außer bei der Verwendung von TextBox-Feldern .is ("input: focus, textarea: Fokus ")
%Vor% Die Lösung von Hudson-Peralta + QF_Developer ist großartig, aber es hat einen Fehler:
Wenn Sie sich auf einen Radioknopf oder eine Checkbox konzentrieren, werden Sie durch die Rücktaste immer wieder aus der Seite entfernt. Hier ist eine Modifikation, um diese Lücke zu vermeiden:
EDIT 20130204:
keypress()
ersetzt durch keydown()
!
Der obige Code funktioniert jetzt korrekt.
EDIT 20151208:
Wie im Kommentar von @outofmind erwähnt, gibt es mehr Eingabetypen, die Sie zurückwerfen können, wenn die Rücktaste gedrückt wird. Fügen Sie der durch Kommas getrennten Auswahlliste der is () -Methode einen beliebigen Typ von Eingabefeldern hinzu, die eine direkte Zeicheneingabe ermöglichen und die in Ihrem HTML-Code wirklich verwendet werden, wie input[type="password"]:focus
, input[type="number"]:focus
oder input[type="email"]:focus
.
Ich habe eine kleine Änderung an der angenommenen Antwort vorgenommen, die für jemanden von Nutzen sein könnte:
%Vor% Bei dieser Methode kann der Benutzer weiterhin mit der Rücktaste navigieren, indem er die STRG-Taste gedrückt hält, aber auch textarea
sowie input
.
Natürlich ist die Alternative, etwas wie dies zu verwenden, was es dem Benutzer nicht erlaubt, das zu verlassen Seite, wenn sie etwas eingegeben haben.
@Nick Craver, eine schändliche Antwort aus mehreren Gründen. Beantworte die Frage oder bewirb dich zumindest nachdenklich.
Hier ist eine prototypbasierte Lösung, die ich für meine Formulare verwendet habe, weil Benutzer sich darüber beschwert haben, dass Backspace sie aus dem Formular entfernen würde (was eine so offensichtlich widerspenstige Sache ist), fragt sich, warum alle Browser die Backspace-Taste als Back verwenden Knopf).
%Vor%Ich habe auch hart daran gearbeitet. Schließlich fand ich die Antwort und für jedermanns Zweck habe ich die Lösung auf Ссылка
Ich habe die Antwort ein bisschen mehr modifiziert, um die gute Antwort von allen zu kombinieren 1. used selector "eingabe [type = text]: focus, textarea: focus", um das standardverhalten für diese elemente beizubehalten, und wie JPsy sagte, um standardverhalten bei inputs wie checkbox zu verhindern 2. stattdessen verwendet e.target, um den Code hängt mehr ausschließlich von JQuery, da ich nicht sicher bin, ob jeder Browser document.activeElement gut unterstützt
BEARBEITEN
3. Fügen Sie das Feld password auch durch Hinzufügen von "input [type = password]: focus" ,