Der Martin: Browserzeile aus Tab-Kreislauf nehmen

Beitrag lesen

Hi,

Hallo,
[...]
Ciao,
Martin

bitte zitiere anständig, kein TOFU! Danke.

ich habe es mit einem Input element probiert. Jetzt springt er aber vom Input Text-Element zum Button ELement.

Klar, du hast auch vergessen, die Eventbearbeitung als "erledigt" zu melden.

function FocusFirst() {
            var elem = document.getElementById("focusInput");

if (elem) elem.focus();
            else
                alert('wdwedw');
        }
  [...]
<input id="focusInput"  tabIndex="0"/>
<input id="Button1" tabIndex="1" type="button" onblur="FocusFirst()" value="button" />

Beim ersten input-Element fehlt noch type="text".

=>Was muss man ändern, damit der Tabfokus immer nur zwischen Text-Element und Button Element wechselt, ohne dazwischen in die Browserzeile zu wechseln ?

Sobald der Button den Fokus verliert, setzt du ihn erstmal auf das Textfeld. Und dann kommt noch die Standard-Eventbearbeitung des Browsers, die feststellt: Oh, Tab-Taste gedrückt, also Focus um ein Element weitersetzen. Diese Standardaktion musst du unterdrücken, indem dein Eventhandler false zurückgibt und so signalisiert: Fertig, keine weitere Aktion nötig.

Hast du schon mal darüber nachgedacht, was bei Shift-Tab auf dem ersten input-Element passiert?
Eben, nichts. Das heißt, die normale Browser-Reaktion, der Focus wechselt auf die Adressleiste.
Hast du schon mal darüber nachgedacht, was bei Shift-Tab auf dem letzten input-Element passiert?
Genau, der Focus wechselt auf das erste input-Element, nicht auf das vorhergehende (bei nur zwei Inputs ist das dasselbe, bei drei schon nicht mehr).

So long,
 Martin

--
F: Was ist wichtiger: Die Sonne oder der Mond?
A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.