At the time of your binding i.e when you are creating change handler, the element (select
element) doesn't exist in the DOM (as it is being generated dynamically). So it binds no change
handlers as there is no element to bind to. As such, one simple solution would be to use delegation. Now, the beauty of using delegation is that no matter when the element is created, the handler gets assigned to the element. This should do the trick for you.
$(document).on('change','select', function(){
alert('test');
});
PS:You should try and use delegation whenever you have to create element on the go (dynamically).