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 ". Soumettre n'est pas une fonction" 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 aussi essayé ceci:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Les deux me montrent la même erreur :(
soumettre n'est pas une fonction
signifie que vous avez nommé votre bouton d'envoi ou un autre élément submit
. Renommez le bouton en btnSubmit
et votre appel fonctionnera comme par magie.
Lorsque vous nommez le bouton submit, vous remplacez la fonction submit()
sur le formulaire.
<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é l'identifiant
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 name = "submit" ou id = "submit" dans le formulaire.
J'avais le même problème lorsque je créais une application MVC en utilisant des pages maîtres . J'ai essayé de rechercher un élément avec 'submit' en tant que noms mentionnés ci-dessus, mais ce n'était pas le cas.
Dans mon cas, cela a créé plusieurs tags sur ma page, ce qui a posé quelques problèmes pour faire référence au bon formulaire.
Pour contourner ce problème, je laisserai le bouton gérer quel objet de formulaire utiliser:
onclick="return SubmitForm(this.form)"
et avec le js:
function SubmitForm(frm) {
frm.submit();
}
Si vous n'avez pas la possibilité de modifier name="submit"
, vous pouvez également soumettre le formulaire de cette façon:
function submitForm(form) {
var submitFormFunction = Object.getPrototypeOf(form).submit;
submitFormFunction.call(form);
}
En fait, la solution est très simple ...
Original:
<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>
Solution:
<form action="product.php" method="get" name="frmProduct" id="frmProduct"
enctype="multipart/form-data">
</form>
<!-- Place the button here -->
<input onclick="submitAction()" id="submit_value" type="button"
name="submit_value" value="">
<script type="text/javascript">
function submitAction()
{
document.frmProduct.submit();
}
</script>
attribuer un nom à submit à un élément de formulaire va simplement masquer la propriété de soumission .. Assurez-vous de ne pas avoir d'élément de formulaire portant le nom de soumission et vous devriez pouvoir accéder à la fonction de soumission parfaitement
La solution pour moi était de définir l'attribut "formulaire" du bouton
<form id="form_id_name"><button name="btnSubmit" form="form_id_name" /></form>
ou est js:
YOURFORMOBJ.getElementsByTagName("button")[0].setAttribute("form", "form_id_name");
YOURFORMOBJ.submit();
Vous devriez utiliser ce code:
$(document).on("ready", function () {
document.frmProduct.submit();
});
Ce que j'ai utilisé est
var enviar = document.getElementById("enviar");
enviar.type = "submit";
Juste parce que tout le reste n'a pas fonctionné.