Bueno, voy a explicarte mejor...
Puede fallar porque lo pongo de memoria.
Supongamos este formulario:
<form name=formulario action="envio.php">
<input type=text name=nombre value="">
<input type=submit value=enviar>
</form>
Se evita el botón submit poniendo un script con esta línea:
document.forms.formulario.submit()...
Ese mismo script puede estar en una ventana popup, y los valores se los puedes pasar por script...
La clave es no poner el atributo action, y usar un botón que abra una ventana pop-up, recoja los valores del formulario en una copia del formulario, y hacer el submit desde esa ventana...
Con esos arreglos el formulario podría quedar así:
<form name=formulario >
<input type=text name=nombre value="">
<input type=button value=enviar onclick="window.open('envio.html', '', '')">
</form>
y el fichero envio.html debería tener algo así:
<html>
<body onload="document.forms.formulario.nombre.value = opener.forms.formulario.value; document.forms.formulario.submit()">
<form name=formulario action="envio.php">
<input type=text name=nombre value="">
</form>
</body>
</html>
Es una versión bastante reducida, pero debería funcionar...
Saludos