From f1627630ade361bd34016a3e3ec451a1454ad2eb Mon Sep 17 00:00:00 2001 From: konnorrogers Date: Tue, 18 Jun 2024 15:12:40 -0400 Subject: [PATCH] dropdown and input fixes --- src/components/dropdown/dropdown.ts | 4 ++-- src/components/input/input.ts | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/dropdown/dropdown.ts b/src/components/dropdown/dropdown.ts index 88da1b09f..cfe2bc4c9 100644 --- a/src/components/dropdown/dropdown.ts +++ b/src/components/dropdown/dropdown.ts @@ -295,9 +295,9 @@ export default class WaDropdown extends WebAwesomeElement { // Either the tag hasn't registered, or it hasn't rendered. // So, wait for the tag to register, and then try again. - if (target === undefined) { + if (target === undefined || target === null) { customElements.whenDefined(tagName).then(async () => { - await (target as WaButton | WaIconButton).updateComplete; + await (accessibleTrigger as WaButton | WaIconButton).updateComplete; this.updateAccessibleTrigger(); }); diff --git a/src/components/input/input.ts b/src/components/input/input.ts index ed55d971a..d8e826ed3 100644 --- a/src/components/input/input.ts +++ b/src/components/input/input.ts @@ -260,15 +260,21 @@ export default class WaInput extends WebAwesomeFormAssociatedElement { return; } - const button = [...form.elements].find((el: HTMLButtonElement) => el.type === 'submit' && !el.disabled) as + const formElements = [...form.elements] + + // If we're the only formElement, we submit like a native input. + if (formElements.length === 1) { + form.requestSubmit(null); + return; + } + + const button = formElements.find((el: HTMLButtonElement) => el.type === 'submit' && !el.matches(":disabled")) as | undefined | HTMLButtonElement | WaButton; - if (!button) { - form.requestSubmit(null); - return; - } + // No button found, don't submit. + if (!button) { return } if (button.tagName.toLowerCase() === 'button') { form.requestSubmit(button);