如何将焦点设置为可观察对象绑定到的 DOM 元素



我有一个绑定到挖空observable变量的 DOM 元素(文本框),现在我想将焦点设置为它。问题是selector不是找到它的可靠方法。

那么是否有可能从挖空observable中获取底层 DOM 元素,然后通过 jQuery 将焦点设置为它呢?

更新我有一个地址搜索结果列表。如果用户更改了"状态"字段,我将执行一些业务规则检查,如果满足条件,我想将焦点设置为同一行上的"城市"字段。

你检查过hasFocus绑定吗?

hasFocus绑定将 DOM 元素的焦点状态与 视图模型属性。它是双向绑定,因此:

  • 如果将视图模型属性设置为 truefalse ,则关联的 元素将变为聚焦或不聚焦。
  • 如果用户手动对焦 或取消焦点关联的元素,视图模型属性将是 相应地设置为truefalse

所以你可以写:

<input type="text" data-bind="value: yourProp, hasFocus: yourOtherProp"/>

当您设置yourOtherProp(true)您的输入将具有焦点。

如果循环中有多个输入,并且使用的是foreach绑定,则应具有实体数组。因此,您只需在每个实体上添加一个IsFocused属性,当您的其他属性更改并且满足条件时,只需将此IsFocused设置为 true。

这是小型演示JSFiddle。

最新更新