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

js
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 ein name-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 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 dem requestSubmit() aufgerufen wurde. Der submitter muss entweder ein Nachkomme des Formularelements sein oder ein form 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.

js
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

Browser-Kompatibilität