¿No es para eso que los parámetros ocultos son para comenzar ...?
<form action="http://www.example.com" method="GET">
<input type="hidden" name="a" value="1" />
<input type="hidden" name="b" value="2" />
<input type="hidden" name="c" value="3" />
<input type="submit" />
</form>
No contaría con ningún navegador que retenga cualquier cadena de consulta existente en la URL de acción.
Como las especificaciones ( RFC1866 , página 46; HTML 4.x sección 17.13.3) establecen:
Si el método es "get" y la acción es un URI HTTP, el agente de usuario toma el valor de acción, agrega un `? ' a continuación, agrega el conjunto de datos del formulario, codificado con el tipo de contenido "application / x-www-form-urlencoded".
Tal vez uno podría codificar en porcentaje la URL de acción para incrustar el signo de interrogación y los parámetros, y luego cruzar los dedos para esperar que todos los navegadores dejen esa URL como está (y validen que el servidor también la entienda). Pero nunca confiaría en eso.
Por cierto: no es diferente para los campos de formulario no ocultos. Para POST, la URL de acción podría contener una cadena de consulta.