Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 MethoderequestSubmit() vonHTMLFormElement fordert an, dass das Formular unter Verwendung eines bestimmten Absende-Buttons gesendet wird.
In diesem Artikel
Syntax
requestSubmit()requestSubmit(submitter)Parameter
submitterOptionalEinAbsende-Button, der ein Mitglied des Formulars ist.
Wenn der
submitterform*Attribute spezifiziert,werden diese das Absendeverhalten des Formulars überschreiben (z.B.formmethod="POST").Wenn der
submittereinnameAttribut besitzt oder ein<input type="image">ist, werden seine Datenin die Formularübermittlung einbezogen (z.B.btnName=btnValue).Wenn Sie den
submitterParameter weglassen, wird das Formularelement selbst als Submitter verwendet.
Rückgabewert
Keiner (undefined).
Ausnahmen
TypeErrorWird ausgelöst, wenn der angegebene
submitterkeinAbsende-Button ist.NotFoundErrorDOMExceptionWird ausgelöst, wenn der angegebene
submitterkein Mitglied des Formulars ist, auf demrequestSubmit()aufgerufen wurde. Der Submitter muss entweder ein Nachfahre des Formularelements sein oder einformAttribut besitzen, das auf das Formular verweist.
Anwendungshinweise
Die offensichtliche Frage ist: Warum existiert diese Methode, wenn wir doch diesubmit() 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 dassubmit Ereignis an das Formularobjekt zurückgesendet.
Beispiele
Im untenstehenden Beispiel wird das Formular versucht zu senden, indemrequestSubmit() verwendet wird, wenn dies verfügbar ist. Wird ein Absende-Button mit der IDmain-submit gefunden, wird dieser zum Senden des Formulars verwendet. Andernfalls wird das Formular ohnesubmitter Parameter gesendet, sodass es direkt vom Formular selbst gesendet wird.
FallsrequestSubmit() nicht verfügbar ist, fällt dieser Code zurück auf das Aufrufen dersubmit() 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> |