Hola:
Te recomiendo que uses siempre botones del tipo submit para enviar formularios, ya que si tus visitantes tienen javascript deshabilitado nunca podrán enviar el formulario, y en el caso contrario, se cancela el envío simplemente devolviendo false al evento: onsubmit="return validar(this)"
En realidad, lo óptimo es una doble validación (en el navegador y en el server)
Con pocos cambios podrías smplemente poner return false (aunque creo que podría valerte como lo tienes devolviendo 0, y en vez de la instrucción submit() para el envío, poner return true (o simplemente no poner nada)... te paso un artículo:
El abc de los formularios
Saludos