Wie kann die Rücktaste deaktiviert werden, wenn sich irgendetwas anderes als das Eingabefeld auf die Verwendung von jquery konzentriert?

8

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?

    
sadmicrowave 15.04.2010, 13:33
quelle

9 Antworten

12

Ich denke, das würde den Trick bewirken:

%Vor%

unter der Annahme, dass die Textfelder die Klasse 'textInput' haben.

Hier ist ein funktionierendes Beispiel

    
Karl Johan 15.04.2010, 14:11
quelle
8

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%     
Hudson-Peralta 22.11.2011 12:29
quelle
6

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:

%Vor%

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 .

    
Jpsy 13.11.2012 10:36
quelle
5

Ich denke, eine kleine Änderung ist notwendig, um Textareas zu behandeln:

%Vor%     
QFDev 23.05.2012 09:47
quelle
4

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.

    
rybo111 24.06.2013 14:58
quelle
2

@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%     
Wulf 04.11.2011 16:46
quelle
2

Hudson-Peraltas Antwort hat mir gut getan, aber ich habe eine kleine Änderung vorgenommen, seit ich viele Keydown-Events benutzt habe:

%Vor%     
Cobol 17.02.2012 21:38
quelle
0

Ich habe auch hart daran gearbeitet. Schließlich fand ich die Antwort und für jedermanns Zweck habe ich die Lösung auf Ссылка

    
Raju Sarvasiddi 17.10.2012 08:24
quelle
0

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" ,

ein %Vor%     
JK ABC 29.01.2013 08:13
quelle

Tags und Links