HTMLFormElement: requestSubmit()-Methode
Die HTMLFormElement
-Methode requestSubmit()
fordert an, dass das Formular mit einem spezifischen Submit-Button abgeschickt wird.
Syntax
requestSubmit()
requestSubmit(submitter)
Parameter
submitter
Optional-
Ein submit button, der ein Mitglied des Formulars ist.
Wenn der
submitter
form*
-Attribute angibt, werden diese das Absendeverhalten des Formulars überschreiben (z.B.formmethod="POST"
).Wenn der
submitter
einname
-Attribut besitzt oder ein<input type="image">
ist, werden seine Daten in das Formular eingeschlossen (z.B.btnName=btnValue
).Wenn Sie den
submitter
-Parameter weglassen, wird das Formularelement selbst alssubmitter
verwendet.
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn der angegebene
submitter
kein submit button ist. NotFoundError
DOMException
-
Wird ausgelöst, wenn der angegebene
submitter
kein Mitglied des Formulars ist, auf demrequestSubmit()
aufgerufen wurde. Dersubmitter
muss entweder ein Nachkomme des Formularelements sein oder einform
-Attribut besitzen, das auf das Formular verweist.
Hinweise zur Verwendung
Die offensichtliche Frage ist: Warum existiert diese Methode, wenn wir schon seit Ewigkeiten die submit()
-Methode haben?
Die Antwort ist einfach. submit()
sendet das Formular ab, aber das ist alles, was es tut. requestSubmit()
hingegen agiert, als ob ein Submit-Button geklickt wurde. Der Inhalt des Formulars wird validiert, und das Formular wird nur abgeschickt, wenn die Validierung erfolgreich ist. Sobald das Formular abgeschickt wurde, wird das submit
-Ereignis zurück an das Formularobjekt gesendet.
Beispiele
Im folgenden Beispiel wird das Formular durch den Versuch, die Anfrage mit requestSubmit()
zu senden, abgeschickt, sofern dies verfügbar ist. Wenn ein Submit-Button mit der ID main-submit
gefunden wird, wird dieser verwendet, um das Formular abzuschicken. Andernfalls wird das Formular ohne submitter
-Parameter abgeschickt und somit direkt vom Formular selbst gesendet.
Wenn andererseits requestSubmit()
nicht verfügbar ist, fällt dieser Code auf den Aufruf der submit()
-Methode des Formulars zurück.
let myForm = document.querySelector("form");
let submitButton = myForm.querySelector("#main-submit");
if (myForm.requestSubmit) {
if (submitButton) {
myForm.requestSubmit(submitButton);
} else {
myForm.requestSubmit();
}
} else {
myForm.submit();
}
Spezifikationen
Specification |
---|
HTML Standard # dom-form-requestsubmit-dev |
Browser-Kompatibilität
BCD tables only load in the browser