diff --git a/assets/docs/components/input-group.md b/assets/docs/components/input-group.md index c19daf4a..2d92f260 100644 --- a/assets/docs/components/input-group.md +++ b/assets/docs/components/input-group.md @@ -390,7 +390,7 @@ class InputGroupAddon(ElDiv, CoreComponent): if (!addon.onclick) { addon.onclick = (e) => { if (!e.target.closest('button')) { - addon.parentElement?.querySelector('input')?.focus(); + addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus(); } }; } diff --git a/components/ui/input_group.py b/components/ui/input_group.py index 7df9f49d..fd17aec7 100644 --- a/components/ui/input_group.py +++ b/components/ui/input_group.py @@ -100,7 +100,7 @@ def add_custom_code(self) -> list[str]: if (!addon.onclick) { addon.onclick = (e) => { if (!e.target.closest('button')) { - addon.parentElement?.querySelector('input')?.focus(); + addon.parentElement?.querySelector('[data-slot="input-group-control"]')?.focus(); } }; } diff --git a/tests/test_input_group.py b/tests/test_input_group.py new file mode 100644 index 00000000..8110abee --- /dev/null +++ b/tests/test_input_group.py @@ -0,0 +1,68 @@ +"""Regression tests for ``input_group``'s addon focus-management handler. + +``InputGroupAddon.add_custom_code`` injects an ``onclick`` handler that moves +focus to the group's form control when a non-button region of the addon is +clicked. The handler originally located the control with +``querySelector('input')`` — a CSS *type* selector that matches only ```` +elements and returns ``null`` for a ``