Hola:
Cuando usas el método submit(), estás forzando el envío, y no activa el evento del mismo nombre... además, con ese método en un botón del tipo button se trata de un envío no_accesible, y por lo tanto no-aconsejable...
El problema tiene una solución más fácil de lo que piensas. Si son 2 botones del tipo submit, y con el mismo nombre, al servidor solo le llega el valor del botón pinchado... es fácil ver el resultado con el método get, leyendo la línea url... por ejemplo:
<form action="" method="get" >
<input type="submit" name="env" value="guardar" />
<input type="submit" name="env" value="guardar_y_salir" />
</form>
Verás en la url al pinchar esto:
?env=guardar o ?env=guardar_y_salir
Saludos