HTMLFormElement: requestSubmit() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die Methode requestSubmit()
des HTMLFormElement
fordert an, dass das Formular mit einem bestimmten Absende-Button eingereicht wird.
Syntax
requestSubmit()
requestSubmit(submitter)
Parameter
submitter
Optional-
Ein Absende-Button, der Mitglied des Formulars ist.
Wenn der
submitter
form*
Attribute angibt, werden diese die Übermittlungsverhalten des Formulars überschreiben (z.B.formmethod="POST"
).Wenn der
submitter
einname
-Attribut hat oder ein<input type="image">
ist, werden seine Daten im Formularversand enthalten sein (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 Absende-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 haben, das auf das Formular verweist.
Verwendungshinweise
Die offensichtliche Frage ist: Warum existiert diese Methode, wenn wir die
submit()
Methode schon seit jeher haben?
Die Antwort ist einfach. submit()
reicht das Formular ein, aber das ist alles, was es tut. requestSubmit()
hingegen verhält sich, als ob ein Absende-Button geklickt würde. Der Inhalt des Formulars wird validiert und das Formular wird nur übermittelt, wenn die Validierung erfolgreich ist. Sobald das Formular eingereicht wurde, wird das
submit
Ereignis an das Formularobjekt zurückgesendet.
Beispiele
Im Beispiel unten wird versucht, das Formular mithilfe von requestSubmit()
einzureichen, falls es verfügbar ist. Wenn ein Absende-Button mit der ID main-submit
gefunden wird, wird dieser verwendet, um das Formular einzureichen. Andernfalls wird das Formular ohne submitter
-Parameter übermittelt, sodass es direkt vom Formular selbst eingereicht wird.
Falls requestSubmit()
hingegen nicht verfügbar ist, weicht 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 # dom-form-requestsubmit-dev |