相关疑难解决方法(0)

如何在 Blazor 中的输入组件内有条件地 PreventDefault?

我想仅在按下 Enter 时阻止输入(input带有 的 html 标记)的默认行为type="text"

protected void HandleKeyPress(KeyboardEventArgs keyboardEventArgs)
{
    if (keyboardEventArgs.Key == "Enter")
    {
        // prevent default
    }     

    // rest of function  
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以做@on{EVENT}:preventDefault之类的事情,但是如何在事件处理程序内有条件地执行此操作?

在javascript中我可以做类似的事情

function(e){
    if(e.keyCode == 13) {
      e.preventDefault();
    }
    // rest of function
}
Run Code Online (Sandbox Code Playgroud)

如何在 Blazor 中做同样的事情?

编辑:

我正在为库进行输入,但无法更改“提交”按钮,我需要在输入组件中防止这种情况发生。

blazor blazor-server-side

12
推荐指数
2
解决办法
5294
查看次数

在 Blazor 输入上防止默认

我有一个带有输入字段的简单应用程序,它应该在您键入时插入一段预定义的文本。

我的代码如下所示:

<input type="text" bind="@PetitionInput" onkeydown="@PetitionHandleKeyDown" />
@functions
{
    private int _petitionCharStep = 0;
    private string _petition = "This is a dummy text";
    public string PetitionInput { get; set; } = string.Empty;

    void PetitionHandleKeyDown(UIKeyboardEventArgs arg) {
        PetitionInput += _petition[_petitionCharStep];
        _petitionCharStep++;

        Console.WriteLine(PetitionInput);
    }
}
Run Code Online (Sandbox Code Playgroud)

当输入字段有焦点时,我在键盘上按下一个字母,然后它应该将字符串中的第一个字母添加_petition到输入中。当我按下键盘上的任何字母时,它应该在输入字段中输入第二个字母。等等。

我遇到的问题是它还在我在键盘上按下的输入末尾添加了字母。我想防止这种情况发生。

有没有办法Blazor只使用问题代码来解决这个问题?

这里有一个在线演示。

preventdefault blazor

6
推荐指数
1
解决办法
3500
查看次数