HTMLFormElement : méthode requestSubmit()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2022.
La méthode requestSubmit() de l'interface HTMLFormElement demande que le formulaire soit soumis en utilisant un bouton de soumission spécifique.
Syntaxe
requestSubmit()
requestSubmit(submitter)
Paramètres
submitterFacultatif-
Un bouton de soumission qui est membre du formulaire.
Si le
submitterprécise des attributsform*, ils remplaceront le comportement de soumission du formulaire (par exemple,formmethod="POST").Si le
submittera un attributnameou s'il s'agit d'un<input type="image">, ses données seront incluses dans la soumission du formulaire (par exemple,btnName=btnValue).Si vous omettez le paramètre
submitter, l'élément formulaire lui‑même est utilisé comme soumetteur.
Valeur de retour
Aucun (undefined).
Exceptions
-- TypeError
- : Levée si le
submitterdéfini n'est pas un bouton de soumission. NotFoundErrorDOMException- : Levée si le
submitterdéfini n'est pas membre du formulaire sur lequelrequestSubmit()a été appelé. Le submitter doit être soit un descendant de l'élémentform, soit disposer d'un attributformfaisant référence au formulaire.
- : Levée si le
Notes d'utilisation
La question évidente est : pourquoi cette méthode existe‑t‑elle, alors que nous disposons de la méthode submit() depuis toujours ?
La réponse est simple. submit() soumet le formulaire, mais c'est tout ce qu'elle fait. requestSubmit(), en revanche, agit comme si un bouton de soumission avait été cliqué. Le contenu du formulaire est validé, et le formulaire est soumis seulement si la validation réussit. Une fois le formulaire soumis, l'événement submit est renvoyé à l'objet form.
Exemples
Dans l'exemple ci‑dessous, le formulaire est soumis en tentant d'utiliser requestSubmit() si cette méthode est disponible. Si un bouton de soumission ayant pour ID main-submit est trouvé, il est utilisé pour soumettre le formulaire. Sinon, le formulaire est soumis sans paramètre submitter, donc il est soumis directement par l'élément form lui‑même.
Si, en revanche, requestSubmit() n'est pas disponible, ce code revient à appeler la méthode submit() du formulaire.
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();
}
Spécifications
| Specification |
|---|
| HTML> # dom-form-requestsubmit-dev> |