Ich möchte in der Lage sein, den TabSchlüssel in einem Textfeld zu verwenden, um über vier Leerzeichen zu tippen. So wie es jetzt ist, springt die Tabulatortaste mit dem Cursor zur nächsten Eingabe.
Gibt es JavaScript, das die Tabulatortaste im Textfeld erfasst, bevor sie in die Benutzeroberfläche gelangt?
Ich verstehe, dass einige Browser (z. B. FireFox) dies möglicherweise nicht zulassen. Wie wäre es mit einer benutzerdefinierten Tastenkombination wie Shift+ Taboder Ctrl+ Q?
javascript
user-interface
Seibar
quelle
quelle
Antworten:
Selbst wenn Sie das Ereignis
keydown
/ erfassenkeyup
, sind dies die einzigen Ereignisse, die von der Tabulatortaste ausgelöst werden. Sie benötigen jedoch eine Möglichkeit, um zu verhindern, dass die Standardaktion zum nächsten Element in der Tabulatorreihenfolge wechselt.In Firefox können Sie die
preventDefault()
Methode für das an Ihren Ereignishandler übergebene Ereignisobjekt aufrufen . Im IE müssen Sie false vom Ereignishandle zurückgeben. Die JQuery-Bibliothek bietet einepreventDefault
Methode für ihr Ereignisobjekt, die in IE und FF funktioniert.quelle
keycode
8
?Ich möchte lieber, dass Tabulatoreinrückungen nicht funktionieren, als das Tabbing zwischen Formularelementen zu unterbrechen.
Wenn Sie einrücken möchten, um Code in das Markdown-Feld einzugeben , verwenden Sie Ctrl+ K(oder ⌘K auf einem Mac).
Um die Aktion tatsächlich zu stoppen, verhindert jQuery (das von Stack Overflow verwendet wird), dass ein Ereignis sprudelt, wenn Sie von einem Ereignisrückruf false zurückgeben. Dies erleichtert das Arbeiten mit mehreren Browsern.
quelle
Die vorherige Antwort ist in Ordnung, aber ich bin einer von denen, die entschieden dagegen sind, Verhalten mit Präsentation zu mischen (JavaScript in mein HTML einfügen), daher ziehe ich es vor, meine Ereignisbehandlungslogik in meine JavaScript-Dateien einzufügen. Darüber hinaus implementieren nicht alle Browser Ereignisse (oder e) auf dieselbe Weise. Möglicherweise möchten Sie eine Überprüfung durchführen, bevor Sie eine Logik ausführen:
quelle
Ich würde davon abraten, das Standardverhalten eines Schlüssels zu ändern. Ich mache so viel wie möglich, ohne eine Maus zu berühren. Wenn Sie also meine Tabulatortaste nicht zum nächsten Feld in einem Formular bewegen, bin ich sehr erschüttert.
Eine Tastenkombination kann jedoch nützlich sein, insbesondere bei großen Codeblöcken und Verschachtelung. Shift-TAB ist eine schlechte Option, da ich normalerweise zum vorherigen Feld in einem Formular komme. Vielleicht wäre eine neue Schaltfläche im WMD-Editor zum Einfügen eines Code-TAB mit einer Tastenkombination möglich?
quelle
Bei der besten Antwort von ScottKoon liegt ein Problem vor
hier ist es
Sollte sein
Aus diesem Grund hat es im IE nicht funktioniert. Ich hoffe, dass ScottKoon den Code aktualisiert
quelle
In Chrome auf dem Mac fügt Alt-Tab ein Tabulatorzeichen in ein
<textarea>
Feld ein.Hier ist eine: . Wee!
quelle