为输入设置值,它是 Blazor 中 onchange 事件的来源
Set value for input which is source of onchange event in Blazor
在 Blazor Server App / .NET 6 preview 4(.NET 5 相同)中,我想处理 onchange 事件,并在某些情况下通过为文本框设置特定值来关闭用户输入。有演示的基本代码:
<input value="@tester" @onchange="@OnChangeHandler" />
@code {
public string tester { get; set; }
public void OnChangeHandler(ChangeEventArgs obj)
{
tester = "100";
}
}
由于某些原因,input 仅显示一次“100”,即使每次 OnChangeHandler
触发时都设置了 属性 tester
。 input 保留用户输入的值,忽略当 onchange
第二次和第三次出现时 tester
设置为“100”的事实。如何使 input 始终包含 tester
的实际值?
一个快速肮脏的解决方法是这样的:
public async Task OnChangeHandler(ChangeEventArgs obj)
{
tester =null;
await Task.Delay(1);
tester = "100";
}
不太好计划在 dotnet6 的预览版 5 中进行修复
在 Blazor Server App / .NET 6 preview 4(.NET 5 相同)中,我想处理 onchange 事件,并在某些情况下通过为文本框设置特定值来关闭用户输入。有演示的基本代码:
<input value="@tester" @onchange="@OnChangeHandler" />
@code {
public string tester { get; set; }
public void OnChangeHandler(ChangeEventArgs obj)
{
tester = "100";
}
}
由于某些原因,input 仅显示一次“100”,即使每次 OnChangeHandler
触发时都设置了 属性 tester
。 input 保留用户输入的值,忽略当 onchange
第二次和第三次出现时 tester
设置为“100”的事实。如何使 input 始终包含 tester
的实际值?
一个快速肮脏的解决方法是这样的:
public async Task OnChangeHandler(ChangeEventArgs obj)
{
tester =null;
await Task.Delay(1);
tester = "100";
}
不太好计划在 dotnet6 的预览版 5 中进行修复