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

Har*_*rry 4 javascript blazor blazor-server-side

我有一个输入元素。keydown我在使用 JavaScript和事件输入时添加了一些过滤和修改文本的功能keypress

例如 - 当输入接受大写字符时,当您仅按“a”(无shift,无大写锁定)时,您会得到“A”。

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

我尝试自己调度该事件。我发送了新创建的KeyboardEvent并且CustomEvent类型为“change”的。什么都不起作用。我可以修改 JS 事件处理程序中的输入值,我可以在浏览器中看到更改,但我的 C# 却看不到。

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

该代码应仅在最新的 Chrome / Firefox 浏览器上运行,较旧的浏览器可能不受支持。

Дми*_*нов 6

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

<input type="text" @bind-value="MyParamenter" @bind-value:event="oninput" >
Run Code Online (Sandbox Code Playgroud)

并在代码中

private string myParameter;

private string MyParameter
{
    get => myParameter;
    set
    {
        myParameter = value.ToUpper();
    }
}
Run Code Online (Sandbox Code Playgroud)