人们希望在页面加载时将光标设置在搜索字段上。代码:
<input class="search-input"
data-dojo-type="dijit/form/TextBox"
data-dojo-attach-point="searchNode"
data-dojo-attach-event="keyup: searchKeyUpEvent"
data-dojo-props="
focused: true,
placeHolder: 'Search'" />
在页面加载时,TextBox 小部件有一个焦点框架,但光标不在那里。
- 这是一个错误吗?
- 如何确保光标位于搜索小部件上?
编辑: 我将重新表述这个问题:如何设置一些文本框,以便当页面加载并且用户开始键入时,默认情况下它会出现在该文本框中?
最佳答案
focused
在 _FocusMixin
中被记录为只读属性;最初设置它不会做你想象的那样。
要最初聚焦该小部件,您需要从 JS 获取对其的引用并调用其 focus
方法。
鉴于您已经定义了附加点和附加事件,我假设此小部件是另一个小部件模板的一部分,在这种情况下,您应该能够最初将其集中在模板化小部件的启动中
方法(尽管取决于您的页面/应用程序的加载方式,可能是执行此操作的更好时机):
startup: function () {
if (this._started) {
return;
}
this.inherited(arguments);
this.searchNode.focus();
});
(我可能建议不要将连接点称为“searchNode”,因为在本例中它是一个小部件,而不是 DOM 节点。)
关于javascript - Dojo:设置用于输入的默认文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689595/