Re: [WICG/webcomponents] Form-associated custom elements: being a submit button (#814)

>Would just form.defaultSubmitButton be enough? Then form.defaultSubmitButton.click() is enough to submit it, right?

Seems like yes according to https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#implicit-submission

>A [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element) element's default button is the first [submit button](https://html.spec.whatwg.org/multipage/forms.html#concept-submit-button) in [tree order](https://dom.spec.whatwg.org/#concept-tree-order) whose [form owner](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-owner) is that [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element) element.

````js
const { form } = this.elementInternals;
const { defaultSubmitButton } = form;
````

>If the user agent supports letting the user submit a form implicitly (for example, on some platforms hitting the "enter" key while a text control is [focused](https://html.spec.whatwg.org/multipage/interaction.html#focused) implicitly submits the form), then doing so for a form, whose [default button](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#default-button) has [activation behavior](https://dom.spec.whatwg.org/#eventtarget-activation-behavior) and is not [disabled](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-fe-disabled), must cause the user agent to [fire a click event](https://html.spec.whatwg.org/multipage/webappapis.html#fire-a-click-event) at that [default button](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#default-button).

````js
if (defaultSubmitButton) {
  if (!defaultSubmitButton.hasAttribute('disabled')) {
    defaultSubmitButton.click();
  }
  return;
}
````

>There are pages on the web that are only usable if there is a way to implicitly submit forms, so user agents are strongly encouraged to support this.

>If the form has no [submit button](https://html.spec.whatwg.org/multipage/forms.html#concept-submit-button), then the implicit submission mechanism must do nothing if the form has more than one field that blocks implicit submission, and must [submit](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-form-submit) the [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element) element from the [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element) element itself otherwise.

````js
if (getSubmissionBlockers(this.form).size > 1) return; // extraneous
form.requestSubmit(); // not sure if form.submit()
````

That's how I'd implement it, given access to `defaultSubmitButton`.


-- 
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/814#issuecomment-1444370901
You are receiving this because you are subscribed to this thread.

Message ID: <WICG/webcomponents/issues/814/1444370901@github.com>

Received on Friday, 24 February 2023 19:59:35 UTC