作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用example from the Microsoft docs ,我正在尝试以编程方式将焦点设置到输入元素。
不幸的是,该示例使用标准 <input type="text">
而我想用它来 InputText
element .
Microsoft 示例使用一个扩展方法,该方法采用 ElementReference
:
public static Task Focus(this ElementReference elementRef, IJSRuntime jsRuntime)
{
return jsRuntime.InvokeAsync<object>(
"exampleJsFunctions.focusElement",
elementRef);
}
使用InputText
,我看不出有办法获得这样的 ElementReference
.
提供我自己的Focus()
过载 InputText
相反,编译但没有显示任何视觉结果。所以我一无所知。
如何以编程方式将焦点设置为 InputText
元素?
最佳答案
在.NET5中,情况会简单得多:
<button @onclick="() => textInput.FocusAsync()">Set focus</button>
<input @ref="textInput"/>
@code {
ElementReference textInput;
}
注意:此功能是在 .NET5 Preview 8 中引入的因此在最终版本发布之前可能会发生变化!
还值得一提的是.NET5 RC1 JavaScript isolation通过 JS 模块导出/导入引入。因此,如果您仍然需要使用 JS 互操作,请不要污染 window
对象。
更新:.NET 5 已发布,此功能保持不变。
我还有一个很酷的Nuget package它可以为你做一些方便的 JS 技巧,例如:聚焦先前的事件元素,而无需使用 @ref
。请参阅文档 here .
关于blazor - 如何将焦点设置到 InputText 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59137973/
我是一名优秀的程序员,十分优秀!