Freitag, 7. Juni 2013

Probleme mit dem tabindex beim IE lösen

Beim IE 8 verhält sich der Tabindex nicht wie bei Chrome 27 und Firefox 18. Normalerweiser erwartet man, daß bei  der Kennzeichnung eines HTML Elements z.B. Inputfeld mit tabindex="1" der erste TAB genau auf dieses Element springt. Macht der IE nicht.

Lösung:

Man fängt mittels keydown die Tabtaste ab und setzt sie explizit auf das HTML Element.

Die Variable tabFocusHandle ist global und wird mit false nach dem Laden der Seite initialisiert. Ist nicht besonders schön. Vielleicht hat jemand eine bessere Lösung.

 $(document).keydown(function(event) {  
       var keyCodeSelectedButton = event.keyCode || event.which;  
       var tabButtonCode = 9;  
       if (tabFocusHandle == true && keyCodeSelectedButton == tabButtonCode) {  
         var naviElement = $('[tabindex="1"]');  
         naviElement.focus();  
         tabFocusHandle = false;  
         return false;  // bei true geht er gleich einen Tab weiter, was wir ja nicht wollen  
       }  
     });