Is it possible you can replace the initial onchange methdod.
var select = document.getElementById('myElementId');
var proxy = select.onchange;
select.onchange=null;
var wrapper = function (e) {
if (!window.event) {
// for compatibility on non-IE browsers where event may be used inline
// untested
window.event = e;
}
// executes the original handler in the scope of the original element
proxy.apply(select);
// new function you want to run
myFn();
};
if (select.addEventListener) {
select.addEventListener('change', wrapper ,false);
}
else {
select.attachEvent('onchange', wrapper);
}
I have this working as a proof of concept. What does the original element markup look like? Depending on what variables are referenced in the original onchange it may or may not fit your problem.
live demo: http://jsbin.com/ufohu4