Tabulator
Lithaila
- html
0 Felix Riesterer0 Dennis0 Lithaila
Hallo!
Was muss ich machen, damit ich beim Drücken der Tabtaste nicht das Input-Feld verlasse ?
Liebe Lithaila,
Was muss ich machen, damit ich beim Drücken der Tabtaste nicht das Input-Feld verlasse ?
garnix. Das ist immer so. Und das ist auch so gewollt.
Wenn Du ein Tabulator-Zeichen eingeben willst, dann musst Du das von woanders her markieren und per copy&paste in Dein Inputfeld einfügen.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi Lithaila,
Was muss ich machen, damit ich beim Drücken der Tabtaste nicht das Input-Feld verlasse?
Dazu wirst du wohl deinen Browser neu programmieren müssen ;-)
Zumindest in meinem Firefox unter WinXP kann ich aber (aus einem anderen Programm) einen Tab in den Zwischenspeicher nehmen (Strg + c) und in einem Formularfeld wieder einfügen (Strg + v).
MfG, Dennis.
Hallo!
Was muss ich machen, damit ich beim Drücken der Tabtaste nicht das Input-Feld verlasse ?
Hallo!
Mein Ziel ist es nicht, ein tab im Textfeld zu haben. Mir wuerde es schon genuegen, dass der Cursor an seinem Platz bleibt und sonst nix passiert.
Danke so weit.
Lithaila
Liebe Lithaila,
Mein Ziel ist es nicht, ein tab im Textfeld zu haben. Mir wuerde es schon genuegen, dass der Cursor an seinem Platz bleibt und sonst nix passiert.
Wozu eigentlich? Wenn der Cursor auf die <TAB>-Taste nicht reagieren soll, dann störst Du ja die Tastaturnavigation erheblich! Das ist auch nicht im Sinne der Browser-Erfinder...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Mein Ziel ist es nicht, ein tab im Textfeld zu haben. Mir wuerde es schon genuegen, dass der Cursor an seinem Platz bleibt und sonst nix passiert.
Wozu eigentlich? Wenn der Cursor auf die <TAB>-Taste nicht reagieren soll, dann störst Du ja die Tastaturnavigation erheblich! Das ist auch nicht im Sinne der Browser-Erfinder...
Weil ich mein "eigenes Tab" einfuegen möchte, wenn der Benutzer Tab drückt.
Das klappt auch so weit, nur wird anschliessend immer noch das "übliche Tab" (Input verlassen) ausgeführt.
Liebe Lithaila,
Weil ich mein "eigenes Tab" einfuegen möchte, wenn der Benutzer Tab drückt.
Das klappt auch so weit, nur wird anschliessend immer noch das "übliche Tab" (Input verlassen) ausgeführt.
Aha! Und wenn Du uns jetzt noch etwas von Deinem Quelltext verrätst, dann kann man Dir sicherlich auch helfen, dass Du Dein Vorhaben doch noch erreichst.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo!
Hier die wesentlichen Zeilen des Codes:
document.onkeydown=keyDownHandler;
function keyDownHandler(event) {
[...]
// tabulator key
if (keyCode == 9) {
insertTab();
return;
}
}
function insertTab() {
cursor = getCursorPos();
text = editLine.value;
rest1 = text.substring(0, cursor);
rest2 = text.substring(cursor, text.length);
editLine.value = rest1+"XXXX"+rest2;
tabCursor = cursor;
}
function insertTab() {
// get the current position of cursor in editLine
cursor = getCursorPos();
// get the current value of the editLine
text = editLine.value; // editLine ist ein Input
// text before cursor
rest1 = text.substring(0, cursor);
// text behind cursor
rest2 = text.substring(cursor, text.length);
// insert "tab" at current cursor position
editLine.value = rest1+"XXXX"+rest2;
// restore cursor position
tabCursor = cursor;
}
Ich fange alle Tastatureingaben ab, analysiere sie im keyDownHandler und wenn es ein Tab war springe ich zu insertTab.
Hier fuege ich an die aktuelle Position ein Tab ein (XXXX).
Soweit so gut.
Leider wird das Tab anschliessend verwendet, um dem naechsten Element den Focus zu geben; dies genau moechte ich verhindern.
Vielen Dank fuer die Ausdauer.
Lithaila
Soweit so gut.
Leider wird das Tab anschliessend verwendet, um dem naechsten Element den Focus zu geben; dies genau moechte ich verhindern.
du suchst cancelBubble bzw. stopPropagation()
Sehr gut beschrieben hier: http://www.quirksmode.org/js/events_order.html
Vielen Dank fuer die Ausdauer.
Lithaila
Struppi.