319 votes

submit n'est pas une fonction en JavaScript

Quelqu'un peut-il me dire ce qui ne va pas avec ce code? J'ai essayé de soumettre un formulaire avec JavaScript, mais une erreur ".submit n'est pas une fonction" s'affiche. Voir ci-dessous pour plus de détails sur le code:

 <form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">
    function submitAction()
    {
        document.frmProduct.submit();
    }
</script>
 

J'ai aussi essayé ceci:

 <script type="text/javascript">
    function submitAction()
    {
        document.forms["frmProduct"].submit();
    }
</script>
 

Les deux me montrent la même erreur :(

890voto

epascarello Points 71353

"submit n'est pas une fonction" signifie que vous avez nommé votre bouton d'envoi ou un autre élément submit. Renommez le bouton à btnSubmit et votre appel fonctionnera comme par magie.

Lorsque vous nommez le bouton Envoyer, vous remplacez la fonction submit () du formulaire.

23voto

gopeca Points 23

Assurez-vous qu'il n'y a pas d'autre formulaire avec le même nom et assurez-vous qu'il n'y a pas de nom = "submit" ou id = "submit" dans le formulaire.

14voto

Chad Grant Points 16571
 <form action="product.php" method="post" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">

document.getElementById("submit_value").onclick = submitAction;

function submitAction()
{
    document.getElementById("frmProduct").submit();
    return false;
}
</script>
 

EDIT: j'ai accidentellement échangé les identifiants autour de

6voto

Quangahh Points 11

J'ai eu le même problème lorsque je créais une application MVC utilisant des pages maîtres. Essayé de chercher élément avec «soumettre» comme noms mentionné ci-dessus, mais ce n'était pas le cas.

Dans mon cas, il a créé plusieurs balises sur ma page, il y avait donc des problèmes de référencement.

Pour contourner ce problème, je laisserai le bouton manipuler l’objet du formulaire à utiliser:

 onclick="return SubmitForm(this.form)"
 

et avec les js:

 function SubmitForm(frm) {
    frm.submit();
}
 

-1voto

Ilya Birman Points 2996

Utilisez getElementById:

 document.getElementById ('frmProduct').submit ()
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X