Dojo:设置用于输入的默认文本框
Dojo: set default TextBox for typing
人们希望在页面加载时将光标设置在搜索字段上。代码:
<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小部件有一个焦点框架,但是光标不在那里。
- 这是一个bug吗?如何确保光标在搜索小部件上?
编辑:
我将重新表述这个问题:如何设置一些文本框,这样当页面加载和用户开始输入时,默认情况下它将出现在该文本框中?
focused
在_FocusMixin
中被记录为只读属性;一开始设置它不会像你想象的那样。
为了初始化小部件,您需要从JS中获取对它的引用并调用它的focus
方法。
假设您已经定义了一个附加点和附加事件,我将假设这个小部件是另一个小部件模板的一部分,在这种情况下,您应该能够最初将其集中在模板化小部件的startup
方法中(尽管取决于您的页面/应用程序的加载方式,可能有更好的时间这样做):
startup: function () {
if (this._started) {
return;
}
this.inherited(arguments);
this.searchNode.focus();
});
(我可能建议不要将附加点称为"searchNode",因为在本例中它是一个小部件,而不是DOM节点)
在花了几个小时并尝试了一堆解决方案(没有一个有效)之后,我找到了一个真正解决问题的方法-使用setTimeout()
window.setTimeout(function(){
_this.searchNode.focusNode.focus();
}, 0);
我不喜欢使用计时器的想法(即使是零计时的),但这可能是唯一的解决方案。
相关文章:
- 在AngularJS Dropdownlost中设置默认文本选项
- knockout.js、knockout可排序和默认文本
- 单击时清除
标记中的默认文本
- 如何将默认文本添加到搜索栏
- 如何在 WP 中的表单中向输入字段添加默认文本
- 像tumblr这样的文本字段中的Javascript默认文本
- 包含默认文本的文本框
- Jquery 验证 - 需要至少 2 个字段中的 1 个填充默认文本以外的任何内容
- php在用户注册后为表单中的可选值设置默认文本
- 搜索字段,清除焦点上的默认文本-FF 3.6
- 加载时为TextBox默认文本,焦点为空文本框
- 如何在指令的情况下更改下拉列表的默认文本,并对指令应用所需的验证
- 当文本区域绑定到模型时,angularjs中的默认文本区域值
- 在文本框中键入时,将默认文本与键入的文本一起移动
- 更改默认文本“;输入位置“;在谷歌地图地点API
- 使用默认文本在twitter上共享链接
- 如何在单击另一个元素时将onclick函数转换为默认文本
- 当用户输入用户名时,清除默认文本
- 在表单的文本字段中设置默认文本
- 输入字段中的默认文本