@Demonical Monk:
Btw. czy był jakiś powód, dla którego innerHTML by zmienić opcje w selekcie? Jakoś nie widzę wielkich plusów korzystania z tego rozwiązania zamiast metod DOM (i rozszerzeń DOM dla elementów HTML). Ja preferuję innerHTML w szablonach, gdzie kod jest bardziej skomplikowany, a także wtedy gdy są problemy z wydajnością. innerHTML jest zwykle szybsze niż DOM, ale w tym wypadku jednak najwidoczniej tak nie było.
Więc użyłbym tu raczej funkcji. Tym bardziej, że kod wewnątrz selekta jest bardzo prosty -- łatwo można by było stworzyć tych parę elementów option, ustawić ich wartości i dodać do selekta.
Przychodzi mi do głowy jedynie to, że może lista opcji była zwracana przez serwer, jako odpowiedź na żądanie ajaxowe. Ale nawet wtedy, jeśli serwer ma wypluć liczbę opcji, czyli par etykieta/wartość, to logiczne byłoby przesłanie tego JSON-em i dodanie za pomocą metod DOM. Mam wrażenie, może nie do końca słuszne, że zapewniłoby to odrobinę więcej bezpieczeństwa. Bo czuję lekki niepokój, gdy wstrzykuję zwrócony z serwera HTML praktycznie nie sprawdzając nawet jego struktury. A gdy już wstrzykuję tak kod do formularza, to niepokój wzrasta jeszcze bardziej. JSON i ręczna modyfikacja DOM u siebie wydaje się odrobinę bezpieczniejszym podejściem.
Fakt, skrypt po stronie klienta trochę by się rozrósł, ale tylko trochę. Nie przepadam za ręcznym budowaniem skomplikowanego drzewa DOM -- kod jest wielki, nieczytelny i koszmarny -- ale zmiana opcji w selekcie leży jeszcze w zasięgu, gdzie opłaca się używać metod DOM.
Przyznaję, że debugowanie pod IE, szczególnie pod tymi starszymi, do najprzyjemniejszych nie należy. W zasadzie to jestem spokojny tylko wówczas gdy po zobaczeniu błędu niemal od razu wiem, który z bugów IE za to odpowiada. A jak jest np. 10 000 linii kodu i "coś nie działa", a ja nie mam pojęcia co i dlaczego... Nie jest to najbardziej komfortowa sytuacja ;). "Dupcenie" było śmieszne, ale w liceum i na początku studiów. Przynajmniej w sensie debugowania.