Recently, while working across a project, I encountered this interesting situation.
I had a picture upload button that automatically started uploading the files when selected from the browse window.
Nonetheless, it didn't work the second time around and that is because the onChange event was not triggered.
So as it happens, when we select the same file again in the input window, the event is not triggered.
To avoid this we need to reset the input field to an empty value after the processing, to ensure that choosing a file will be performed on a clean file control. Like:
Hope this helps you someday. :)