Hola banyuken:
Aunque los formularios no son mi especialidad, he aprendido a evitar usar el botón submit, y hacer el submit desde otro botón, donde antes se pueden hacer chequeos...
Puedes usar un formulario sencillo y en lugar de un botón submit, otro botón para ello
Luego puedes poner otro formulario con todos sus campos ocultos, y según el chequeo, llenar los campos con los valores que necesitemos, y hacer otro submit...
Voy a poner un ejemplillo:
<form action=accion1 name=f1>
<input type=text name=envio1 value="">
<input type=text name=envio2 value="">
<input type=text name=envio3 value="">
<input type=botton name=submit1 value="enviar" onclick="chequeo()">
</form>
<form action=accion2 name=f2>
<input type=hidden name=oculto1 value="">
<input type=hidden name=oculto2 value="">
</form>
Ahora supondremos que si envio3 = "si" hay que usar el formulario f1, en otro caso el f2...
ponemos entonces la función chequeo de la siguiente manera:
function chequeo() {
if (document.forms.f1.envio3.value == "si") {
// se envía el formulario f1
document.forms.f1.submit();
}
else {// en este caso hay que llenar antes el formulario oculto
document.forms.f2.oculto1.value = document.forms.f1.envio1.value;
document.forms.f2.oculto2.value = document.forms.f1.envio2.value;
// y luego se hace el submit
document.forms.f2.submit();
}
}
No lo he probado, pero creo que debe funcionar... espero que te sirva.
Saludos