Skip to content

Commit 6aa8f4d

Browse files
authored
fix(AutoFill): support numberpad enter key (#4634)
* feat: 增加 IsEnterKey 判断 * refactor: 使用 IsEnterKey 判断键值 * refactor: 增加小键盘支持 * test: 增加小键盘单元测试
1 parent 67c2e18 commit 6aa8f4d

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ public virtual async Task OnKeyUp(string key)
256256
await OnEscAsync(Value);
257257
}
258258
}
259-
else if (key == "Enter")
259+
else if (IsEnterKey(key))
260260
{
261261
if (!string.IsNullOrEmpty(CurrentSelectedItem))
262262
{

src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function init(id, invoke) {
2323
EventHandler.on(input, 'keyup', debounce(e => {
2424
invoke.invokeMethodAsync('OnKeyUp', e.code)
2525
}, duration, e => {
26-
return ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape', 'Enter'].indexOf(e.key) > -1
26+
return ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape', 'Enter', 'NumpadEnter'].indexOf(e.key) > -1
2727
}))
2828
}
2929
else {

src/BootstrapBlazor/Components/AutoComplete/PopoverCompleteBase.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,11 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
156156
/// </summary>
157157
/// <returns></returns>
158158
protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop);
159+
160+
/// <summary>
161+
/// 判断是否为回车键
162+
/// </summary>
163+
/// <param name="key"></param>
164+
/// <returns></returns>
165+
protected bool IsEnterKey(string key) => key == "Enter" || key == "NumpadEnter";
159166
}

src/BootstrapBlazor/Components/AutoFill/AutoFill.razor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ public virtual async Task OnKeyUp(string key)
257257
await OnEscAsync(Value);
258258
}
259259
}
260-
else if (key == "Enter")
260+
else if (IsEnterKey(key))
261261
{
262262
ActiveSelectedItem ??= _filterItems.FirstOrDefault();
263263
if (ActiveSelectedItem != null)

test/UnitTest/Components/AutoCompleteTest.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ public class AutoCompleteTest : BootstrapBlazorTestBase
1313
[Fact]
1414
public void Parameter_Ok()
1515
{
16+
var items = new List<string>() { "test1", "test2" };
1617
var cut = Context.RenderComponent<AutoComplete>(builder =>
1718
{
18-
builder.Add(a => a.Items, new string[] { "test1", "test2" });
19+
builder.Add(a => a.Items, items);
1920
builder.Add(a => a.NoDataTip, "test3");
2021
builder.Add(a => a.ShowNoDataTip, true);
2122
builder.Add(a => a.DisplayCount, 10);
@@ -175,7 +176,7 @@ public void Enter_Test()
175176

176177
cut.InvokeAsync(() => cut.Instance.OnKeyUp("t"));
177178
cut.InvokeAsync(() => cut.Instance.OnKeyUp("ArrowDown"));
178-
cut.InvokeAsync(() => cut.Instance.OnKeyUp("Enter"));
179+
cut.InvokeAsync(() => cut.Instance.OnKeyUp("NumpadEnter"));
179180
Assert.True(enter);
180181
}
181182

0 commit comments

Comments
 (0)