Skip to content

Commit b917fd3

Browse files
ArgoZhangIdle-wang
andauthored
fix(Select): enter keydown event not work (#5032)
* refactor: 精简参数使用默认值 * refactor: 合并代码提高可读性 * feat: 修复 Enter 按键失效问题 * chore: bump version 9.2.4-beta01 Co-Authored-By: IDLE <[email protected]> * Revert "refactor: 合并代码提高可读性" This reverts commit 47809a0. --------- Co-authored-by: IDLE <[email protected]>
1 parent 907f9c0 commit b917fd3

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

src/BootstrapBlazor.Server/Components/Pages/Coms.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div class="coms-search">
55
<div class="row">
66
<div class="col-12">
7-
<Search @bind-Value="@SearchText" PlaceHolder="@Localizer["Search"]" IsTriggerSearchByInput="true" IsAutoFocus="true" OnSearch="@OnSearch"></Search>
7+
<Search @bind-Value="@SearchText" PlaceHolder="@Localizer["Search"]" OnSearch="@OnSearch"></Search>
88
</div>
99
</div>
1010
<div class="coms-search-filter">

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.2.3</Version>
4+
<Version>9.2.4-beta01</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Select/Select.razor.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,14 @@ export function init(id, invoke, options) {
2929
const menu = popover.toggleMenu;
3030
const key = e.key;
3131
if (key === "Enter" || key === 'NumpadEnter') {
32-
menu.classList.remove('show')
33-
let index = indexOf(el, activeItem)
32+
if (popover.isPopover) {
33+
popover.hide();
34+
}
35+
else {
36+
menu.classList.remove('show');
37+
}
38+
const activeItem = menu.querySelector('.active');
39+
let index = indexOf(menu, activeItem)
3440
invoke.invokeMethodAsync(confirmMethodCallback, index)
3541
}
3642
else if (key === 'ArrowUp' || key === 'ArrowDown') {
@@ -64,7 +70,9 @@ export function init(id, invoke, options) {
6470
}
6571

6672
EventHandler.on(el, 'shown.bs.dropdown', shown);
67-
EventHandler.on(el, 'keydown', keydown)
73+
74+
const input = el.querySelector(`#${id}_input`);
75+
EventHandler.on(input, 'keydown', keydown)
6876

6977
const onSearch = debounce(async v => {
7078
search.parentElement.classList.add('l');
@@ -73,6 +81,7 @@ export function init(id, invoke, options) {
7381
});
7482
if (search) {
7583
Input.composition(search, onSearch);
84+
EventHandler.on(search, 'keydown', keydown);
7685
}
7786

7887
const select = {
@@ -123,10 +132,15 @@ export function dispose(id) {
123132
Data.remove(id)
124133

125134
if (select) {
126-
EventHandler.off(select.el, 'shown.bs.dropdown')
127-
EventHandler.off(select.el, 'keydown');
128-
Popover.dispose(select.popover)
129-
Input.dispose(select.search);
135+
const { el, popover, search } = select
136+
EventHandler.off(el, 'shown.bs.dropdown')
137+
EventHandler.off(el, 'keydown');
138+
Popover.dispose(popover);
139+
140+
if (search) {
141+
Input.dispose(search);
142+
EventHandler.off(search, 'keydown');
143+
}
130144
}
131145
}
132146

0 commit comments

Comments
 (0)