Andreas Dölling: Dynamisch gefüllte Select-Box - Moz-Problem

Beitrag lesen

Hallo,

ich habe ein Eingabeformular mit zwei Select-Feldern: "Unternehmen" und "Abteilungen". Letzteres wird in Abhängigkeit von der Auswahl in "Unternehmen" per "Ajax" dynamisch mit den entsprechenden Abteilungen gefüllt.
Das klappt alles ganz wunderbar.
Bei bereits vorliegenden Datensätzen, die bearbeitet werden, soll nun aber die Abteilung schon vorausgewählt werden. Sprich: ich klicke in einer Liste den zu bearbeitenden Datensatz an, woraufhin das Formular mit den entsprechenden Daten zwecks weiterer Bearbeitung gefüllt wird. Dabei wird das Unternehmen vorausgewählt. Daraufhin werden per Ajax die dazugehörenden Abteilungen ausgelesen. Und schließlich soll nun die richtige Abteilung vorausgewählt werden.

Im IE klappt das wie gewünscht. Im Firefox dagegen wechselt die Anzeige der SELECT-Box nicht auf den aktivierten Eintrag, d.h. sie bleibt auf "Bitte auswählen" stehen.
Wenn ich allerdings in untenstehender Funktion den Kommentar vor dem  alert() entferne, so verhält sich auch der Firefox so, wie ich es möchte. Er wechselt die Anzeige der SELECT-Box auf die aktivierte Abteilung.

Ich hoffe, Ihr könnt nachvollziehen, was ich Euch mitteilen möchte (es ist Montagmorgen und der Sprachapparat noch ein bißchen träge.....).

Kennt Ihr dieses Phänomen? Und habt Ihr eine Lösung dafür?
Bin für Tipps oder weiterführende Links dankbar.

Ciao,
Andreas

Hier noch die betreffende und eigentlich unspektakuläre Funktion:
function fillSelectBoxInitially(departmentId) {
 var selectObjCompanies   = document.forms['data_form'].elements['company_id'];
 var selectObjDepartments  = document.forms['data_form'].elements['department_id'];
 var companyId = selectObjCompanies.options[selectObjCompanies.options.selectedIndex].value;
 getDepartments(companyId); // holt per "Ajax" die Abteilungen  zum Unternehmen aus der Datenbank
 for(var i=0; i<selectObjDepartments.options.length; i++) {
  //alert(i);
  if(selectObjDepartments.options[i].value == departmentId) {
   selectObjDepartments.options[i].selected = true;
  } else {
   selectObjDepartments.options[i].selected = false;
  }
 }
}