Ich habe eine HTML-Seite vorbereitet, welches das Problem verdeutlicht:
Das ist auf jeden Fall schonmal gut. Aber ich verstehe nicht was du erwartest.
Im FF lassen sich das 2. und 4. Feld nicht anklicken. Der Focus springt immer von 1 nach 3 und zurück.
Bei mir im IE 7 kann ich mit TAB überhaupt nicht die Felder wechseln, nur mit Shift-Tab (und dann wieder mit TAB).
Feld (F1) <input id=id1 name=F1 tabIndex=1 maxlength="5" onblur=onblur_id1(); value=""><br>
Dein HTML ist stark verbesserungswürdig.
- ich verwende IE7. Im FF funktioniert alles wie erwartet.
- beim Verlassen des ersten Feldes mit TAB soll der Fokus auf das dritte Feld gesetzt werden.
- Das zweite Feld soll beim Fokuserhalt (onfocus) auf das 4 Feld springen.
Das passiert bei mir in keinem Browser.
Wenn ich das erste Feld verlasse springt wie erwartet die onblur an. Allerdings springt auch die onblur Funktion des zweiten Feldes an (wahrscheinlich wegen dem tabindex)
Das widerrum kann ich im IE nachvollziehen.
was ich also bräuchte wäre eine Möglichkeit in der onblur Funktion dafür zu sorgen, dass die "TAB-Funktion" des IE bei Bedarf unterbrochen werden kann. Entweder vom Javascript aus oder per C# - mit Zugriff über mshtml auf den DOM-Baum...
Ich weiß ja nicht wann diese Bedingung eintritt, aber Vielleicht kann dir eine onfocus Funktion helfen. Im IE ist es so wie beschreibst und du hast eine Schleife immer zurück auf das 1. Feld.
Aber im grossen ganzen hört sich das eher so an, als ob du vielleicht die Logik hinter dem ganzen ändern solltest. Da du offensichtlich zwei sich gegenseitig widersprechende Bedingungen hast.
Struppi.