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 September 2022.
Die Methode requestSubmit()
von HTMLFormElement
fordert an, dass das Formular unter Verwendung eines bestimmten Absende-Buttons gesendet wird.
Syntax
requestSubmit()
requestSubmit(submitter)
Parameter
submitter
Optional-
Ein Absende-Button, der ein Mitglied des Formulars ist.
Wenn der
submitter
form*
Attribute spezifiziert, 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 die Formularübermittlung einbezogen (z.B.btnName=btnValue
).Wenn Sie den
submitter
Parameter weglassen, wird das Formularelement selbst als Submitter 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. Der Submitter muss entweder ein Nachfahre des Formularelements sein oder einform
Attribut besitzen, das auf das Formular verweist.
Anwendungshinweise
Die offensichtliche Frage ist: Warum existiert diese Methode, wenn wir doch die
submit()
Methode seit Anbeginn der Zeit haben?
Die Antwort ist einfach. submit()
sendet das Formular, aber das ist alles, was es tut. requestSubmit()
hingegen verhält sich so, als ob ein Absende-Button geklickt wurde. Der Inhalt des Formulars wird validiert, und das Formular wird nur gesendet, wenn die Validierung erfolgreich ist. Sobald das Formular gesendet wurde, wird das submit
Ereignis an das Formularobjekt zurückgesendet.
Beispiele
Im untenstehenden Beispiel wird das Formular versucht zu senden, indem requestSubmit()
verwendet wird, wenn dies verfügbar ist. Wird ein Absende-Button mit der ID main-submit
gefunden, wird dieser zum Senden des Formulars verwendet. Andernfalls wird das Formular ohne submitter
Parameter gesendet, sodass es direkt vom Formular selbst gesendet wird.
Falls requestSubmit()
nicht verfügbar ist, fällt dieser Code zurück auf das Aufrufen der submit()
Methode des Formulars.
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 |