Liebe Nicole,
ich mach' mal Einzelschritt, ok?
1. User ändert auf der Seite die Auswahl in box1. Browser "merkt" das und feuert den onChange-Eventhandler, was dazu führt, dass die Funktion aus Deinem onchange-Attribut in Deiner box1 ausgeführt wird.
1.a. Die Funktion aus dem onChange-Attribut ändert den Auswahlwert in box2 dynamisch. Daher sieht der User auch in box2 einen veränderten Wert. Der Browser ist hiermit fertig, da er _nicht_ "merkt", dass sich in box2 etwas verändert hat. Daher führt er auch die Funktion aus dem onChange-Attribut in box2 _nicht_ aus.
2. User ändert den Auswahlwert in box2. Browser reagiert und führt passenden Javascript-Code (Funktion des onChange-Attributes in box2) aus. Dadurch sieht der User einen geänderten Wert in box3 (wegen der Javascript-Funktion). Der Browser ist auch hier fertig.
Der Browser ruft nur dann eine Funktion aus einem onChange-Attribut auf, wenn der User (und nicht irgendein Script) in der entsprechenden Auswahl etwas verändert hat.
Deine Lösung:
zu 1.a. Die Funktion ändert nicht nur den Wert in box2, sondern ruft auch noch die dortige onChange-Funktion auf, damit die Auswirkungen der Änderungen in ihr (box2) sich auch auf box3 auswirken.
Wenn Du nun Deinen Code (HTML-Teil auf das Nötigste gekürzt! JS-Teil nur die Funktionen!) postest, dann kann ich Dir zeigen, wie Du die entsprechenden Funktionen anpassen musst.
Liebe Grüße aus Ellwangen,
Felix Riesterer.