在 Blazor 中的文本或数字框中自动突出显示

Posted

技术标签:

【中文标题】在 Blazor 中的文本或数字框中自动突出显示【英文标题】:Auto highlighting in text or numeric box in Blazor 【发布时间】:2021-11-24 15:24:00 【问题描述】:

我处于 blazor 的初级阶段。我需要知道,当点击文本框或数字框时,文本框或数字框内的文本应该会自动按照下图高亮显示。

如何使用 blazor 做到这一点?

【问题讨论】:

【参考方案1】:

您可以通过向元素添加 javascript 焦点事件处理程序来做到这一点:

onfocus="this.select()"

【讨论】:

【参考方案2】:

这对我有用:

_Host.cshtml

<script>
    function selectText(inputId) 
        var inp = document.querySelector("#" + inputId);
        if (inp.select) 
            inp.select();
        
    
</script>

Index.razor

@page "/"
@inject IJSRuntime jsRuntime

<div class="form-group">
    <label>Standard</label>
    <input id="@MyID" @bind-value="@MyText" @onclick="@SelectText" />
</div>

@code 
    public string MyText  get; set;  = "text";
    public string MyID  get; set;  = "input-id1";

    async Task SelectText()
    
        await jsRuntime.InvokeVoidAsync("selectText", MyID);
    
 

【讨论】:

@Sergio Junior 的答案大约有 10 个字符长并且有效。 JS 互操作不是必需的。 我们不能不使用javascript吗?? @Buddhi,有可能,但我找不到怎么做。 Blazor 不像 Javascript 那样对 DOM 有完整的控制,所以有时你可能需要像我在这个例子中那样集成几行 JS。 您可以考虑的一件事是创建一个输入组件来执行上述行为并在整个代码中使用它。这是 Blazor 的方式。

以上是关于在 Blazor 中的文本或数字框中自动突出显示的主要内容,如果未能解决你的问题,请参考以下文章

代码并不总是突出显示富文本框中的选定文本

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

如何在 C# Winforms 程序的文本框中突出显示文本?

从 vb.net 中的表单外部获取突出显示的文本

excel怎_设定可以根据数字自动变填充颜色??

在文本框中显示数据库中的十进制值