如何在键入时修改输入并使Blazor看到更改



我有一个输入元素。在使用JavaScriptkeydownkeypress事件进行键入时,我添加了一些过滤和修改文本的功能。

例如,当一个输入接受大写字符时,当你只按"a"(没有移位,没有大写锁定(,你就会得到"a"。

这是有效的,但是输入值绑定根本不起作用。我只是在JS事件上调用preventDefault(),就这样,绑定被破坏了。

我试着亲自安排这次活动。我发送了新创建的KeyboardEvent和类型为"change"的CustomEvent。什么都不管用。我可以在JS事件处理程序中修改输入值,我可以在浏览器中看到更改,但我的C#没有。

我怎样才能做到这一点?我必须手动调用C#来更新绑定吗?或者还有其他方法吗?

该代码应该只适用于最新的Chrome/Firefox浏览器,旧的浏览器可能不受支持。

为什么不在Blazor代码中执行?在你的降价:

<input type="text" @bind-value="MyParamenter" @bind-value:event="oninput" >

和代码

private string myParameter;
private string MyParameter
{
get => myParameter;
set
{
myParameter = value.ToUpper();
}
}

也许,这可以回答您的问题。简而言之,当你想处理TextChanged事件时,你可以这样做:

<MudTextField Label="Some Label Text"
T="string"
Value="person.FirstName"
ValueChanged="(value) => person.FirstName = value.ToUpper()"
Immediate="true" />

";技巧";是将CCD_ 6一分为二:CCD_ 7和CCD_。然后在ValueChanged中,你可以用C#的力量做任何你想做的事情。

请注意,Blazor从我们这里抽象了JS端,有了一些经验,我学会了在使用Blazor开发时尽可能远离JS端,这让我省去了很多麻烦。

相关内容

  • 没有找到相关文章

最新更新