Lithaila: Tabulator

Hallo!

Was muss ich machen, damit ich beim Drücken der Tabtaste nicht das Input-Feld verlasse ?

  1. 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.

  2. 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.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Die Definition des SelfCodes ist hier zu finden, es gibt auch einen Encoder.
  3. 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

    1. 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.

      1. 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.

        1. 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.

          1. 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

            1. 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.