Kurz gesagt: Ändern Sie die ID Ihres Absenden-Schaltfläche auf etwas anderes als "senden". Setzen Sie auch nicht den Namen auf diesen Wert.
Jetzt, einige tiefere Einblicke. Der allgemeine Fall ist, dass document.formname.submit
eine Methode ist, die, wenn sie aufgerufen wird, das Formular absendet. In Ihrem Beispiel ist document.formname.submit
jedoch keine Methode mehr, sondern der DOM-Knoten, der die Schaltfläche darstellt.
Dies geschieht, weil Elemente eines Formulars über die Attribute name
und id
als Attribute des DOM-Knotens verfügbar sind. Diese Formulierung ist ein wenig verwirrend, kommt also hier ein Beispiel:
<form name="example" id="example" action="/">
<input type="text" name="exampleField" />
<button type="button" name="submit" onclick="document.example.submit(); return false;">Submit</button>
</form>
Auf diesem Beispiel document.forms.example.exampleField
ist ein DOM-Knoten das Feld mit dem Namen „exampleField“ darstellt. Sie können JS verwenden, um auf seine Eigenschaften wie seinen Wert zuzugreifen: document.forms.example.exampleField.value
.
In diesem Beispiel gibt es jedoch ein Element der Form "submit", und das ist die Schaltfläche zum Senden, die mit document.forms.example.submit
erreicht werden kann. Dies überschreibt den vorherigen Wert, der die Funktion war, mit der Sie das Formular senden können.
EDIT:
Wenn das Feld Umbenennung nicht gut für Sie ist, gibt es eine andere Lösung. Kurz vorher schreibt, verließ ich die Frage auf der Website und bekam eine Antwort in Form eines ordentlichen JavaScript Hack:
function hack() {
var form = document.createElement("form");
var myForm = document.example;
form.submit.apply(myForm);
}
Siehe How to reliably submit an HTML form with JavaScript? für vollständige Details
Als Arbeit um tat ich folgendes: einfach eine Drucktaste angezeigt werden, die die Druck Methode aufruft, wenn der Benutzer dies erreicht hat, dann zeige ich den Absenden-Button (< input type = "submit" id = "btnSubmit" />) und alles gut. –