Hola
No es necesario la doble validación que realizas, con una sola valdria.
No me suena que a través de javascriipt se pueda saber que botón se a pulsado, al menos como tu lo has hecho.
No entiendo que un botón "cancel" realice la acción "submit", por lo general dos botones que hacen acciones opuestas debería llamar a funciones diferentes.
Un evento onclick puede llamar a dos funciones facilmente:
Código:
....
function doble() {
funcion_1();
funcion_2();
}
....
<input type="submit" value="Enviar" onclick="doble()">
....
Creo que te estas complicando un poco, te aconsejo que antes de seguir te pares a pensar y realices un análisis de tu problema. Te aseguro que es innecesario lo que estas realizando y que hay soluciones más simples a tu problema.