javascript - Dojo:设置用于输入的默认文本框

标签 javascript dojo focus

人们希望在页面加载时将光标设置在搜索字段上。代码:

<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/

相关文章:

javascript - 将数组中的数字相加。得到奇怪的输出。 JavaScript

javascript - 如何使用 lodash 从对象中删除未定义值和空值?

android - 在 Android 中以编程方式选择 EditText

javascript - 将焦点集中到容器内的第一个元素时出现问题

javascript - jquery .eq 选择器有更短的方法吗?

php - 从查询字符串php中删除加号

javascript - 设置 Dojo 按钮的宽度

java - 在 Java 中构建可视化组件期间防止焦点

javascript - dojofilteringSelect - 仅允许输入列表项

javascript - Dojo:过滤选择模板