Und wenn ich den von dir geposteten Code nehme (und das nicht geschlossene form-Tag korrigiere) - ja, dann reagiert der Firefox wirklich so, wie von dir beschrieben.
Also nutze einen anderen, passenderen Event zur Ausloesung per Pruefroutine in diesem Falle.
Ich meinte bereits an anderer Stelle, das dies nicht logisch ist.
Fazit: Wenn "change" durch Tastatureingabe, dann ist onchange in Ordnung, bei "change" durch besagte Auswahl, dann ist es kein Change und dann nimm gefälligst einen anderen event, z.B. onblur und teste halt das Feld immer, wenn es verlassen wird, also auch wenn man mit der Tab Taste von Feld zu Feld springt.
Eine Vorgehensweise, die mich an dem Verstand der Entwickler zweifeln läßt!