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 is not a function" s'est affichée. 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 également essayé ceci:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Les deux me montrent la même erreur :(
javascript
html
dom
submit
Jin Yong
la source
la source
Réponses:
signifie que vous avez nommé votre bouton d'envoi ou un autre élément
submit
. Renommez le boutonbtnSubmit
et votre appel fonctionnera comme par magie.Lorsque vous nommez le bouton soumettre, vous remplacez la
submit()
fonction sur le formulaire.la source
#submit
, vous pouvez contourner le problème en volant d' une autre forme par exemplesubmit()
la méthode, par exemple:document.createElement('form').submit.call(document.frmProduct)
.EDIT: J'ai accidentellement échangé l'id autour
la source
Assurez-vous qu'il n'y a aucun autre formulaire portant le même nom et assurez-vous qu'il n'y a pas de nom = "soumettre" ou id = "soumettre" dans le formulaire.
la source
Si vous n'avez pas la possibilité de changer,
name="submit"
vous pouvez également soumettre le formulaire de cette façon:la source
HTMLFormElement.prototype.submit.call(form)
fonctionne égalementJ'ai eu le même problème lorsque je créais une application MVC avec des pages maîtres. J'ai essayé de rechercher un élément avec «soumettre» comme noms comme mentionné ci-dessus, mais ce n'était pas le cas.
Pour mon cas, il a créé plusieurs balises sur ma page, il y avait donc des problèmes référençant le bon formulaire.
Pour contourner cela, je laisse le bouton gérer quel objet de formulaire utiliser:
et avec le js:
la source
Ce sujet a déjà beaucoup de réponses, mais celui qui a le mieux fonctionné (et le plus simple - une ligne!) Pour moi était une modification du commentaire fait par Neil E. Pearson du 21 avril 2013:
Ma modification de sa méthode et ce qui a fonctionné pour moi:
document.createElement('form').submit.call(document.getElementById(frmProduct));
la source
donner à un élément de formulaire un nom de soumission masquera simplement la propriété submit. assurez-vous que vous n'avez pas d'élément de formulaire avec le nom soumettre et vous devriez pouvoir accéder à la fonction de soumission très bien.
la source
En fait, la solution est très simple ...
Original:
Solution:
la source
Vous devez utiliser ce code:
la source
Ce que j'ai utilisé c'est
Tout simplement parce que tout le reste n'a pas fonctionné.
la source
La solution pour moi était de définir l'attribut "formulaire" du bouton
ou est js:
la source
Solutions possibles -
1.Assurez-vous que vous n'avez aucun autre élément avec le nom / id comme soumis.
2.Essayez d'appeler la fonction en tant que
onClick = "return submitAction();"
3.
document.getElementById("form-name").submit();
la source
Tu peux essayer
N'avez-vous pas plus d'un formulaire du même nom?
la source
Utilisez getElementById:
la source