Alright i made some progress. I load this additionaly. Without it, the code above works flawless.
------- function $(element) { return document.getElementById(element); } var Compat = { addEventHandler: function(element, event, handler) { var _tmp, _onevent; if (!element || !event ) return false; if(typeof(element) == "string") { element = document.getElementById(element); } if (element.addEventListener) // DOM-konform element.addEventListener(event, handler, false); else { _onevent = 'on'+event; if (element.attachEvent) // IE element.attachEvent(_onevent, handler); else { // ältere Browser _tmp = element[_onevent]; element[_onevent] = typeof _tmp == 'function' ? (function() { _tmp(); handler(); }) : handler; } } }, removeEventHandler: function (element, event, handler) { var _tmp, _onevent; if (!element || !event ) return false; if(typeof(element) == "string") { element = document.getElementById(element); } if (element.removeEventListener) // DOM-konform element.removeEventListener(event, handler, false); else { _onevent = 'on'+event; if (element.detachEvent) // IE element.detachEvent(_onevent, handler); else { // ältere Browser element[_onevent] = ""; } } }, createXMLHttpRequest: function () { var req = null; try { req = new ActiveXObject("MSXML2.XMLHTTP"); } catch (err_MSXML2) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err_Microsoft) { if (typeof XMLHttpRequest != "undefined") req = new XMLHttpRequest; } } return req; } } ------- ------- function ChangeStates() { var req = null; this.loadStates = function () { country = document.getElementById("country"); req = Compat.createXMLHttpRequest(); req.onreadystatechange = cs.setNewStates; req.open("GET", "./ajax/getstates.php?id=" + country.value, true); req.send(""); } this.setNewStates = function () { if(req.readyState == 4) { var states = document.getElementById("states"); isLoading = false; if (req.status == 200) { states.innerHTML = '<select id="state" name="state">' + req.responseText + '</select>'; } else { states.innerHTML = 'Fehler!'; } } } this.init = null; } cs = new ChangeStates(); cs.init = function () { Compat.addEventHandler("country", "change", cs.loadStates); } Compat.addEventHandler(window, "load", cs.init); -------