【问题标题】:Can not set focus on a table row无法在表格行上设置焦点
【发布时间】:2019-07-27 22:42:57
【问题描述】:

我试图在组件初始化时将焦点设置在表格行上,但在使用 interop 时我得到一个空值

<table  class='table'>
     <thead>
         <tr>value</tr>
    </thead>
     <tbody>          
        @foreach (var elem in this.data) {
           <tr id="@elem.toString()"><td>@elem</td></tr>
     </tbody>
 </table>


@functions()
{
     protected int []data=new int[]{1,2,3,34};
     protected override async Task OnInitAsync() {
                if (data.Length > 0) {
                    var elementName= data.First().ToString();
                    await JSRuntime.Current.InvokeAsync<string>("methods.focus", elementName);;
                }
            }

}

互操作

window.methods={
    focus: function (elementName) { //i get the right id 
            var element = document.getElementById(elementName);//returns null
            element.focus();
        }
}

PS 我在浏览器中调试时focus方法中的elementName是正确的,但是document.getElementById返回一个空元素。我需要先获取表格元素然后搜索里面的那一行?

【问题讨论】:

  • @Pete,不一样...这里说的是 blazor。

标签: javascript interop blazor


【解决方案1】:

您不能将焦点设置在 td 或 tr 元素上。但是,您可以在 td 元素中放置一个输入元素,然后设置焦点。

希望对你有帮助……

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-11-26
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
相关资源
最近更新 更多