Hola:
Me parece que no es el uso debido de los botones y los eventos de un formulario:
Las validaciones deberían hacerse con el evento onsubmit del tag form (En el botón submit no debería hacerse nada con respecto al formulario)
Con tu primer post, me parece que lo adecuado sería algo así:
<form action='Ventas/cesta.php?action=add_item&id=$art[cod_art]' method=post name=frmCantidad class=form id=frmCantidad
onsubmit="return cantidad_comprar()">
<input name='txt_cantidad' type='text' class='caja' style='text-align:center' onKeypress='Validar_Numeros()' value='1' size='4' maxlength='2' >
<input type='submit' name='btn_enviar' value='Enviar' class='boton' >
</form>
y en el script poner return true cuando pasa la validación (se envía)... aunque creo que se podría obviar... aunque sería más legible... y return false para cancelar el envío.
He tardado un poco en aprenderme estas cosas, pero creo que es la forma correcta de la gestión de un formulario... (tal vez solo sea mi punto de vista)
Saludos