Announcement

Collapse
No announcement yet.

Tabindex spinnt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabindex spinnt

    Guten Morgen!

    Folgendes Problem:
    Ich habe ein mehrseitiges Formular indem ich eine bestimmte Tab Reihenfolge brauche. Beim letzten Tab einer Seite soll die Anwendung direkt auf das nächste Tab Fenster springen (die nächste Seite). Klappt soweit auch wunderbar. Ein bissl Javascript so und es läuft.

    Will ich nun aber mit [SHIFT][TAB] in das vorherige Feld springen spinnt der Browser etwas rum, er springt in ein ganz anderes Feld und erst wenn ich danach [TAB] drücke springt er in das gewünschte Feld.

    Dieses Phänomen zeigt sich aber
    1. nicht bei jedem Feld
    2. es sind immer Feld- Paare.
    Feld 1 springt immer zu Feld 5 und dann zu Feld 2.
    Feld 3 springt immer zu Feld 12 und dann zu Feld 4.
    usw...
    3. ohne jeden Grund.....

    Ich habe bereits den Tabindex überprüft und die Javascript Funktionen die ausgelöst werden. Auch der Quelltext ändert sich nicht...

    Hier ein Auszuge aus dem Quelltext:

    HTML Quelltext (in Zeile 4 ist eines der Felder die spinnen):

    HTML Code:
    <label for="sterbe_strasse_verstorbener">Strasse/ Hausnr.</label>
    <input id="input_strasse" name="sterbe_strasse_verstorbener" onfocus="showBox('ortsauswahl_box', 'verstorbener','sterbe');" value="" tabindex="39" onkeydown="berechneKostenvoranschlag=true;" type="text">
    <input id="input_hausnr" name="sterbe_hausnr_verstorbener" value="" tabindex="40" onkeydown="jumpTab(event,2,false);" type="text"><br>
    <label for="sterbe_plz_verstorbener">PLZ/ Ort</label>
    <input id="input_plz" name="sterbe_plz_verstorbener" readonly="readonly" value=""  type="text">
    <input id="input_ort" name="sterbe_ort_verstorbener" readonly="readonly" value=""  type="text">
    Javascript Quelltext:

    Code:
    function jumpTab(event,tabnr,back)
    {
        if (event.which == "9" && event.shiftKey && back == true)
        {
            alert("hallo");
        }
        else if (event.which == "9" && !event.shiftKey)
        {
            getName("window1_tab_button_"+tabnr).onclick();
        } 
    }
    Vielleicht könnt ihr mir ja helfen...

  • #2
    Mal abgesehen davon, dass das ja nur im Internet Exploder funktioniert...

    Was ist getName()? Ist das auch Micro$oft-Syntax für getElementByName()?
    Und, wenn das ein Objekt zurückliefert, was soll objekt.onclick() machen? Das wendet man doch so an, dass man sagt objekt.onclick = funktion; um eine Funktion aufzurufen, wenn das Event eintritt.
    Außerdem wird das Ganze ja auch nur im Feld Hausnummer aufgerufen.

    Comment


    • #3
      Mir ist gerade auch mal aufgefallen das die Javascript Funktion damit nichts zu tun haben kann... das ganze tritt auch in Feldern ohne die Funktion JumpTab(); auf...

      Zu deinen Fragen:

      GetName(); ist eine vereinfachte From von document.getElementById(); , ist selbst programmiert um den Code übersichtlicher zu machen.

      Es funktioniert im Moment eigentlich nur im Firefox, im IE ist es auf jeden Fall noch nicht getestet.

      getName().onClick(); löst das onClick Event aus, ist eigentlich dasselbe wie element.click();, funktioniert aber auch im Firefox.

      Comment


      • #4
        Naja, im JavaScript sind einige Microsoft-proprietäre Dinge enthalten, wie z.B. das mit dem shiftKey. (Zumindest lt. SelfHTML).
        Aber prinzipiell machen die Browser das mit den Tabstops ja ohnehin selber. Probleme gibts vielleicht deswegen, weil nicht alle Deine Eingabefelder einen Tabindex haben...hmm...das sind readonly-Felder...

        Hier steht noch was zu dem Thema, auch die Bestätigung, dass einige Browser unterschiedlich auf den tabindex reagieren:
        http://www.einfach-fuer-alle.de/artikel/tabindex/

        Comment


        • #5
          Danke für den Link, ich denke mal das es an dem Verhalten von Firefox liegt...

          Allerdings wird dort das Verhalten vom normalen [TAB] Sprüngen beschrieben... aber das ist ja bei mir völlig in Ordnung... lediglich das zurück springen ([SHIFT][TAB]) macht Probleme...

          Das die Erkennung von [SHIFT] Microsoft spezifisch ist, ist okay. Unsere Kunden nutzen Linux oder andere OS höchstens mal als Server aber nicht um unser Programm auszuführen.

          Comment

          Working...
          X