Kann mir jemand sagen, was mit diesem Code falsch läuft? Ich habe versucht, ein Formular mit JavaScript zu senden, aber der Fehler ".submit ist keine Funktion" wird angezeigt. Weitere Details 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 es auch versucht:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Beide zeigen mir den gleichen Fehler :(
javascript
html
dom
submit
Jin Yong
quelle
quelle
Antworten:
bedeutet, dass Sie Ihre Senden-Schaltfläche oder ein anderes Element benannt haben
submit
. Benennen Sie die Taste in umbtnSubmit
und Ihr Anruf wird auf magische Weise funktionieren.Wenn Sie die Schaltfläche Senden benennen, überschreiben Sie die
submit()
Funktion im Formular.quelle
#submit
können Sie dies umgehen, indem Sie diesubmit()
Methode einer anderen Formularinstanz stehlen , zdocument.createElement('form').submit.call(document.frmProduct)
.EDIT: Ich habe versehentlich die IDs ausgetauscht
quelle
Stellen Sie sicher, dass kein anderes Formular mit demselben Namen vorhanden ist, und stellen Sie sicher, dass das Formular keinen Namen = "Senden" oder ID = "Senden" enthält.
quelle
Wenn Sie keine Möglichkeit zur Änderung haben
name="submit"
, können Sie das Formular auch folgendermaßen einreichen:quelle
HTMLFormElement.prototype.submit.call(form)
funktioniert auchIch hatte das gleiche Problem, als ich eine MVC-Anwendung mit Masterseiten erstellte. Ich habe versucht, nach einem Element mit 'submit' als Namen zu suchen, wie oben erwähnt, aber das war nicht der Fall.
In meinem Fall wurden mehrere Tags auf meiner Seite erstellt, sodass einige Probleme beim Verweisen auf das richtige Formular auftraten.
Um dies zu umgehen, lasse ich die Schaltfläche das zu verwendende Formularobjekt handhaben:
und mit dem js:
quelle
Dieses Thema hat bereits viele Antworten, aber das, was für mich am besten (und am einfachsten - eine Zeile!) Funktionierte, war eine Modifikation des Kommentars von Neil E. Pearson vom 21. April 2013:
Meine Änderung an seiner Methode und was für mich funktioniert hat:
document.createElement('form').submit.call(document.getElementById(frmProduct));
quelle
Wenn Sie einem Formularelement den Namen submit geben, wird die Eigenschaft submit einfach schattiert. Stellen Sie sicher, dass Sie kein Formularelement mit dem Namen submit haben und dass Sie problemlos auf die Submit-Funktion zugreifen können.
quelle
In der Tat ist die Lösung sehr einfach ...
Original:
Lösung:
quelle
Sie sollten diesen Code verwenden:
quelle
Was ich benutzt habe ist
Nur weil alles andere nicht funktioniert hat.
quelle
Die Lösung für mich bestand darin, das Attribut "form" der Schaltfläche festzulegen
oder ist js:
quelle
Mögliche Lösungen -
1.Stellen Sie sicher, dass Sie kein anderes Element mit Name / ID als Übermittlung haben. 2.
Versuchen Sie, die Funktion als
onClick = "return submitAction();"
3 aufzurufen .
document.getElementById("form-name").submit();
quelle
Du kannst es versuchen
Haben Sie nicht mehr als ein Formular mit demselben Namen?
quelle
Verwenden Sie getElementById:
quelle