gpt4 book ai didi

Blazor,如何触发回车键事件来操作按钮功能?

转载 作者:行者123 更新时间:2023-12-03 13:44:42 29 4
gpt4 key购买 nike

我正在尝试 Microsoft 的待办事项列表示例:https://docs.microsoft.com/en-us/aspnet/core/tutorials/build-a-blazor-app?view=aspnetcore-3.1
我想添加一个待办事项,而不是通过单击鼠标按下按钮,而是按下 Enter 键。我对在这个解决方案中使用 JS 不满意:How to set the focus to an InputText element?
我尝试通过这行代码触发方法 private void Enter(KeyboardEventArgs e):

<button @onclick="AddTodo" @onkeypress="@(e=>Enter(e)" tabindex="0"  >Add todo</button>
它没有用。
enter code here
<input placeholder="Something todo" @bind="newTodo" />
<button @onclick="AddTodo" @onkeypress="Enter" tabindex="0" >Add todo</button>

@code {
private IList<TodoItem> todos = new List<TodoItem>();
private string newTodo;

private void AddTodo()
{
if (!string.IsNullOrWhiteSpace(newTodo))
{
todos.Add(new TodoItem { Title = newTodo });
newTodo = string.Empty;
}
}

//private void Enter(KeyboardEventArgs e)
private void Enter()
{
//if (e.Key == "Enter")
{
if (!string.IsNullOrWhiteSpace(newTodo))
{
todos.Add(new TodoItem { Title = newTodo });
newTodo = string.Empty;
}
}
}
}

最佳答案

onkeypress仅对字符键触发。 onkeydown将触发所有按下的键。我找到了对所有关键事件之间差异的一些解释 here
onkeydown 试试它起作用了:

<input type="text" @onkeydown="@Enter" />
在事件处理程序中,您必须这样做(请注意,我检查了 EnterNumpadEnter 键):
public void Enter(KeyboardEventArgs e)
{
if (e.Code == "Enter" || e.Code == "NumpadEnter")
{
// ...
}
}

关于Blazor,如何触发回车键事件来操作按钮功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63861068/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com