Kann mir jemand sagen, was mit diesem Code schief geht? Ich habe versucht, ein Formular mit JavaScript zu senden, aber es wird ein Fehler ". Weitere Informationen zum Code finden Sie unten:
<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>
Ich habe auch folgendes versucht:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Beide zeigen mir den gleichen Fehler :(
submit ist keine Funktion
bedeutet, dass Sie Ihren Submit-Button oder ein anderes Element submit
benannt haben. Benennen Sie die Schaltfläche in btnSubmit
um und Ihr Anruf funktioniert auf magische Weise.
Wenn Sie den Button "Senden" benennen, überschreiben Sie die Funktion "submit()
" im Formular.
<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: Ich habe versehentlich die IDs ausgetauscht
Stellen Sie sicher, dass es kein anderes Formular mit demselben Namen gibt, und stellen Sie sicher, dass das Formular keinen Namen = "submit" oder id = "submit" enthält.
Ich hatte das gleiche Problem, als ich eine MVC-Anwendung unter Verwendung von Masterseiten erstellte. Versucht, nach einem Element mit "Submit" als Namen zu suchen, wie oben erwähnt, aber es war nicht der Fall.
In meinem Fall wurden mehrere Tags auf meiner Seite erstellt. Es gab also Probleme mit dem richtigen Formular.
Um dies zu umgehen, lasse ich die Schaltfläche verwenden, welches Formularobjekt verwendet werden soll:
onclick="return SubmitForm(this.form)"
und mit den js:
function SubmitForm(frm) {
frm.submit();
}
Wenn Sie keine Gelegenheit haben, name="submit"
zu ändern, können Sie das Formular auch auf folgende Weise absenden:
function submitForm(form) {
var submitFormFunction = Object.getPrototypeOf(form).submit;
submitFormFunction.call(form);
}
Dieses Thema hat bereits viele Antworten, aber die für mich beste (und einfachste - eine Zeile!) War eine Änderung des Kommentars von Neil E. Pearson vom 21. April 2013:
Wenn Ihre Submit-Schaltfläche nicht mehr #submit ist, können Sie dies umgehen, indem Sie die submit () -Methode einer anderen Formularinstanz stehlen.
Meine Modifikation seiner Methode und was bei mir funktioniert hat:
document.createElement('form').submit.call(document.getElementById(frmProduct));
In der Tat ist die Lösung sehr einfach ...
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>
Lösung:
<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>
wenn Sie einem Formularelement den Namen "Submit" geben, wird einfach die Submit-Eigenschaft beschattet. Stellen Sie sicher, dass Sie kein Formularelement mit dem Namen Submit haben, und Sie sollten in der Lage sein, auf die Submit-Funktion zuzugreifen.
Mögliche Lösungen -
1.Stellen Sie sicher, dass Sie kein anderes Element mit Name/ID als Submit haben.
2.Versuche die Funktion als onClick = "return submitAction();"
aufzurufen
3 .document.getElementById("form-name").submit();
Die Lösung für mich war, das "form" -Attribut der Schaltfläche festzulegen
<form id="form_id_name"><button name="btnSubmit" form="form_id_name" /></form>
oder ist js:
YOURFORMOBJ.getElementsByTagName("button")[0].setAttribute("form", "form_id_name");
YOURFORMOBJ.submit();
Sie sollten diesen Code verwenden:
$(document).on("ready", function () {
document.frmProduct.submit();
});
Was ich verwendet habe, ist
var enviar = document.getElementById("enviar");
enviar.type = "submit";
Nur weil alles andere nicht funktioniert hat.