N'est-ce pas à cela que servent les paramètres cachés pour commencer... ?
<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>
Je ne compterais pas sur un navigateur qui conserverait une chaîne de requête existante dans l'URL de l'action.
Comme les spécifications ( RFC1866 , page 46 ; HTML 4.x section 17.13.3) déclarent :
Si la méthode est "get" et que l'action est un URI HTTP, l'agent utilisateur prend la valeur de l'action, y ajoute un `?', puis ajoute l'ensemble des données du formulaire, codées à l'aide du type de contenu "application/x-www-form-urlencoded".
On pourrait peut-être coder en pourcentage l'URL d'action pour intégrer le point d'interrogation et les paramètres, puis croiser les doigts en espérant que tous les navigateurs laisseront cette URL telle quelle (et valideront que le serveur la comprend aussi). Mais je ne me fierais jamais à cela.
A propos : ce n'est pas différent pour les champs de formulaire non cachés. Pour les POST, l'URL de l'action peut contenir une chaîne de requête.