Если код свой, то организовать его так, чтобы при изменении значения скриптом, вызывался обработчик change. Ведь это просто функция, которую можно вызвать. А по-хорошему должна быть отдельная функция, которая вызывается, как из обработчика change, так и из обработчика click, а также из всех других мест, где меняется значение.
Если код чужой, или удобнее считать его таковым (т.е. не заморачиваться, как он устроен), то можно просто повеситься на таймер и периодически проверять значение из него. В некоей переменной сохраните старое значение, и по таймеру проверяйте, отличается ли текущее значение в select от сохраненного в переменной. Если да, то делаем действия, соответствующие событию change.