La primera respuesta es la mejor solución:
Agregue un controlador onsubmit al formulario (ya sea a través de js simple o jquery $ (). Submit (fn)) y devuelva falso a menos que se cumplan sus condiciones específicas.
Más específico con jquery:
$('#your-form-id').submit(function(){return false;});
A menos que no desee que el formulario se envíe nunca, en cuyo caso, ¿por qué no omitir el atributo 'acción' en el elemento del formulario?
Escribir extensiones de Chrome es un ejemplo de dónde puede tener un formulario para la entrada del usuario, pero no desea que se envíe. Si usa action = "javascript: void (0);", el código probablemente funcionará, pero terminará con este problema donde obtendrá un error sobre la ejecución de Javascript en línea.
Si omite la acción por completo, el formulario se volverá a cargar, lo que tampoco es deseado en algunos casos al escribir una extensión de Chrome. O si tuvieras una página web con algún tipo de calculadora incrustada, donde el usuario proporcionaría alguna entrada y haría clic en "Calcular" o algo así.