c# - @onkeypress 没有得到文本输入框的更新值?
问题描述
我有以下代码。
<input id="search" type="text" @bind="Search" @onkeypress="SearchChanged" />
@code {
string Search;
void SearchChanged()
{
var s = Search; // Search is always one character behind
}
}
在文本框中键入将触发该功能SearchChanged
。但是,它得到的值总是在输入文本之前的一个字符。例如,在 中设置断点SearchChanged
,
搜索的类型值 ===== ================ 一个空 ab 美国广播公司 abcd 美国广播公司
顺便说一句,@onkeypress
在 Internet 浏览器中不起作用?
试图将代码更改为
<input id="search" type="text" @bind="Search" />
@code {
string search;
string Search
{
get { return search; }
set {
search = value;
ResultList = GetNewList(search).Result.ToList();
}
}
void SearchChanged()
{
var s = Search; // Search is always one character behind
}
}
我在 中设置了一个断点set { }
,但是,在键入文本框时,断点只被击中一两次?
解决方案
您正在寻找@bind-value:event
:
<input id="search"
type="text"
@bind-value="Search"
@bind-value:event="oninput"
/>
@code {
string search;
string Search
{
get { return search; }
set {
search = value;
ResultList = GetNewList(search).Result.ToList();
}
}
引用数据绑定文档:
除了使用 @bind 语法处理 onchange 事件之外,还可以通过指定带有事件参数 (@bind-value:event) 的 @bind-value 属性来使用其他事件绑定属性或字段。
推荐阅读
- r - 如何通过 rmarkdown 自动将 networkD3::sankeyNetwork() 保存到静态图像中?
- listview - 更改 SharePoint Online 列表视图行为 spfx 定制器
- docker - 找出 docker-compose 传递给容器的环境变量的值
- express - 在 Express 会话中存储 Socket IO socket.id
- javascript - 移动图片中心弹出对话框
- python - 美丽的汤没有返回我所期望的任何东西
- python - 从列表中删除其他元素时从列表中删除“假”
- kubernetes - Kubernetes 文档或 API 参考
- python - tkinter after() 在一段时间后滞后
- ios - Lottie 动画在 iOS 中缺少部分,但在 html 和 Android 中完美运行