Que bueno que lo encontraste pero te comento que también existe en el tag un atributo llamado accept el cual te sirve para hacer lo que haces en tu funcion te mando una liga con este atributo y puede que te ayude para otras cosas esta muy interesante
http://www.htmlquick.com/es/reference/tags/input.html