Comment envoyer un formulaire avec Javascript lorsque le nom de l'entrée est "soumettre"?

Question: Comment pouvez-vous envoyer un formulaire avec Javascript si une entrée de formulaire a le nom submit ?

Contexte: je redirige l'utilisateur vers une autre page avec un formulaire HTML caché. Je ne peux pas changer de nom sur les entrées (cachées), car l'autre page est sur un autre serveur et les entrées doivent être exactement telles qu'elles sont. Ma forme HTML ressemble à ceci:

 <form id="redirectForm" method="post" action="http://www.example.com/"> <input name="search" type="hidden" value="search for this" /> <input name="submit" type="hidden" value="search now" /> </form> 

J'utilise la ligne javascript suivante pour envoyer le formulaire automatiquement aujourd'hui:

 document.getElementById('redirectForm').submit(); 

Cependant, comme le nom d'une entrée est "soumettre" (il ne peut pas être autre chose, ou l'autre serveur ne traitera pas la demande), document.getElementById('redirectForm').submit réfère à l'entrée car elle remplace le formulaire Fonction submit() .

Le message d'erreur dans Firefox est: Error: document.getElementById("requestform").submit is not a function . Message d'erreur similaire dans Safari.

    A noter : Il est souvent plus facile de simplement modifier le nom de l'entrée à autre chose que "soumettre". Veuillez utiliser la solution ci-dessous uniquement si cela n'est vraiment pas possible.

    Vous devez obtenir la fonction de submit sous une forme différente:

     document.createElement('form').submit.call(document.getElementById('redirectForm')); 

    Si vous avez déjà une autre <form> , vous pouvez l'utiliser au lieu de créer une autre.

    Utilisez la méthode submit() de HTMLFormElement.prototype :

     HTMLFormElement.prototype.submit.call(document.getElementById('redirectForm'));