使用Ctrl + V组合键时,是否可以更新Blazor中附加到输入文本项的绑定变量?

lu

我有此输入是为了捕获电话号码。当用户输入数字并按“ Enter”键时,将触发“ KeyWasPressed”方法,并进行一些验证。这按预期工作...

例如,当用户从excel复制并粘贴数字时,变量@Phone不会更新其值,因此当用户按下“ Enter”键时,验证将发送并清空值。

@Phone当某些文本粘贴到输入控件时,是否可以刷新/更新变量?

这是我的代码片段:

<input type="number" class="form-control" @bind="@Phone" @onkeypress="@(async e => await KeyWasPressed(e))" placeholder="Client Phone Number" />

@code {

    string Phone { get; set; }

    private async Task GetClientInfo()
    {
        if(String.IsNullOrWhiteSpace(Phone))
        {
            notificationMessages = $"Add a phone number";
        }
        else
        {
            showSpinner = true;

            clientInfo = await ApiHelper.GetClientInfoByPhone(Phone);           

            if(clientInfo != null)
            {
                var singleViewId = clientInfo?.SingleViewId;
                var customerNumber = clientInfo?.Accounts?.FirstOrDefault().CustomerNumber;
                var status = clientInfo?.Accounts?.FirstOrDefault().Status;
                showClientInformation = true;

                var CrossSell = clientInfo?.Accounts[0]?.CrossSell;


            }
            else
            {
                showClientInformation = false;
                notificationMessages = $"No client data for this phone ({Phone})";
            }

            showSpinner = false;
        }
    }

    private async Task KeyWasPressed(KeyboardEventArgs args)
    {
        if(args.Key == "Enter")
        {
            //await GetClientInfo();
        }
    }
}
丹妮·埃雷拉(Dani Herrera)

直接解决方案:

只需使用@bind-value="@Phone" @bind-value:event="oninput"


<input type="number" @bind-value="@Phone" @bind-value:event="oninput" 
       @onkeyup="@OnUserFinish"/>
<p>@clientInfo</p>

@code {
    protected string Phone { get; set; } 
    protected string clientInfo {get; set;}

    private async Task OnUserFinish(KeyboardEventArgs e)
    {
        if (e.Key == "Enter")
          clientInfo = await Fake_ApiHelper_GetClientInfoByPhone(Phone);      
    }

    private async Task<string> Fake_ApiHelper_GetClientInfoByPhone(string phone)
    {
        await Task.CompletedTask;
        return $"Client phone: {phone}";
    }
}

奖励轨道:

移至用户友好的防反跳版本:

@using System.Timers;

<input type="number" @bind-value="@Phone" @bind-value:event="oninput" 
       @onkeyup="@HandleKeyUp"/>
<p>@clientInfo</p>

@code {
    protected string Phone { get; set; } 
    protected string clientInfo {get; set;}
    private System.Timers.Timer aTimer;

    protected override void OnInitialized()
    {
        aTimer = new System.Timers.Timer(250);
        aTimer.Elapsed += OnUserFinish;
        aTimer.AutoReset = false;
    }

    void HandleKeyUp(KeyboardEventArgs e)
    {
        // remove previous one
        aTimer.Stop();

        // new timer
        aTimer.Start();        
    }    

    private void OnUserFinish(Object source, ElapsedEventArgs e)
    {
        InvokeAsync( async () =>
          {
            clientInfo = await Fake_ApiHelper_GetClientInfoByPhone(Phone);      
            StateHasChanged();
          });
    }

    private async Task<string> Fake_ApiHelper_GetClientInfoByPhone(string phone)
    {
        await Task.CompletedTask;
        return $"Client phone: {phone}";
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CTRL + A选择文本区域中的所有文本

来自分类Dev

如何使用正则表达式检测CTRL + C和CTRL + V键按下?

来自分类Dev

使用硒C#在文本字段上执行键盘笔触“ Ctrl + A”,“ Ctrl + C”和“ Ctrl + V”

来自分类Dev

使用SharpSsh在ssh中发送Ctrl + A之类的键

来自分类Dev

在插入模式下,Vim不会采用使用CTRL键的映射

来自分类Dev

我可以不使用$ ctrl吗?在角度分量模板中

来自分类Dev

如何使用redux时间旅行并将其绑定到ctrl + z和ctrl + shift + z键绑定?

来自分类Dev

使用ctrl + super + D时Conky消失

来自分类Dev

在C中多次使用Ctrl + C

来自分类Dev

使用AutoCompleteMode的奇怪TextBox行为。附加:Ctrl + A清除文本

来自分类Dev

使用ctrl + super + D时Conky消失

来自分类Dev

使用Ctrl + C时Vim延迟,但仅在SQL文件中

来自分类Dev

在AutoHotKey中使用Right Ctrl + Right Alt组合

来自分类Dev

无法使用xmodmap重新映射Ctrl键

来自分类Dev

使用Vim时误按“ Ctrl + S”

来自分类Dev

我可以在Sublime Text中使用Ctrl-x Ctrl-s之类的顺序键绑定吗?

来自分类Dev

为什么在Outlook中无法使用SendInput Ctrl + V?

来自分类Dev

AspectJ + Java 8 +使用ctrl时出错,单击变量

来自分类Dev

使用Ctrl +逗号的Tmux绑定

来自分类Dev

使用屏幕时,是否可以在Ctrl + a:multiuser上编写代码?

来自分类Dev

DateTieredCompactionStrategy是否可以与组合键一起使用?

来自分类Dev

为什么在bash快捷方式中不使用Ctrl + m和Ctrl + q?

来自分类Dev

在所有应用程序中都可以使用Ctrl + X和Ctrl + V,但不能使用Ctrl + C

来自分类Dev

Ctrl2Cap是否可以在Windows 10上使用

来自分类Dev

如何使用CTRL + D结束输入?

来自分类Dev

使用Ctrl + S键盘快捷键时的延迟

来自分类Dev

zsh-使用ctrl + c,ctrl + x,ctrl + v优化复制,剪切和粘贴

来自分类Dev

如何在 nattable 中使用 Ctrl+c 和 ctrl+v?

来自分类Dev

游戏中无法使用ctrl键

Related 相关文章

  1. 1

    使用CTRL + A选择文本区域中的所有文本

  2. 2

    如何使用正则表达式检测CTRL + C和CTRL + V键按下?

  3. 3

    使用硒C#在文本字段上执行键盘笔触“ Ctrl + A”,“ Ctrl + C”和“ Ctrl + V”

  4. 4

    使用SharpSsh在ssh中发送Ctrl + A之类的键

  5. 5

    在插入模式下,Vim不会采用使用CTRL键的映射

  6. 6

    我可以不使用$ ctrl吗?在角度分量模板中

  7. 7

    如何使用redux时间旅行并将其绑定到ctrl + z和ctrl + shift + z键绑定?

  8. 8

    使用ctrl + super + D时Conky消失

  9. 9

    在C中多次使用Ctrl + C

  10. 10

    使用AutoCompleteMode的奇怪TextBox行为。附加:Ctrl + A清除文本

  11. 11

    使用ctrl + super + D时Conky消失

  12. 12

    使用Ctrl + C时Vim延迟,但仅在SQL文件中

  13. 13

    在AutoHotKey中使用Right Ctrl + Right Alt组合

  14. 14

    无法使用xmodmap重新映射Ctrl键

  15. 15

    使用Vim时误按“ Ctrl + S”

  16. 16

    我可以在Sublime Text中使用Ctrl-x Ctrl-s之类的顺序键绑定吗?

  17. 17

    为什么在Outlook中无法使用SendInput Ctrl + V?

  18. 18

    AspectJ + Java 8 +使用ctrl时出错,单击变量

  19. 19

    使用Ctrl +逗号的Tmux绑定

  20. 20

    使用屏幕时,是否可以在Ctrl + a:multiuser上编写代码?

  21. 21

    DateTieredCompactionStrategy是否可以与组合键一起使用?

  22. 22

    为什么在bash快捷方式中不使用Ctrl + m和Ctrl + q?

  23. 23

    在所有应用程序中都可以使用Ctrl + X和Ctrl + V,但不能使用Ctrl + C

  24. 24

    Ctrl2Cap是否可以在Windows 10上使用

  25. 25

    如何使用CTRL + D结束输入?

  26. 26

    使用Ctrl + S键盘快捷键时的延迟

  27. 27

    zsh-使用ctrl + c,ctrl + x,ctrl + v优化复制,剪切和粘贴

  28. 28

    如何在 nattable 中使用 Ctrl+c 和 ctrl+v?

  29. 29

    游戏中无法使用ctrl键

热门标签

归档