Para conseguir separar el código hemos de tener en cuenta que el uso metodo como onClick, onSubmit,… deberían envitarse.
Pero claro si quitamos esto ¿como lanzamos eventos en nuestros controles? Muy facil usando el metodo addEventListener, se trara de un metodo que inserta el arbol DOM que creamos en el navegador (completamente transparente para nosotros) haciendo que se ejecute cuando nosotros le idicamos.
Ej.
elem.addEventListener(event,func,false);
elem – Es el elemento al que se le asignará el evento.
Event – será el evento que queramos esperar para dicho elemento.
Func – Es la función que queremos lanzar al recibir el evento en nuestro elemento.
Fuente