我有一个绑定到挖空observable
变量的 DOM 元素(文本框),现在我想将焦点设置为它。问题是selector
不是找到它的可靠方法。
那么是否有可能从挖空observable
中获取底层 DOM 元素,然后通过 jQuery 将焦点设置为它呢?
更新我有一个地址搜索结果列表。如果用户更改了"状态"字段,我将执行一些业务规则检查,如果满足条件,我想将焦点设置为同一行上的"城市"字段。
你检查过hasFocus
绑定吗?
hasFocus
绑定将 DOM 元素的焦点状态与 视图模型属性。它是双向绑定,因此:
- 如果将视图模型属性设置为
true
或false
,则关联的 元素将变为聚焦或不聚焦。- 如果用户手动对焦 或取消焦点关联的元素,视图模型属性将是 相应地设置为
true
或false
。
所以你可以写:
<input type="text" data-bind="value: yourProp, hasFocus: yourOtherProp"/>
当您设置yourOtherProp(true)
您的输入将具有焦点。
如果循环中有多个输入,并且使用的是foreach
绑定,则应具有实体数组。因此,您只需在每个实体上添加一个IsFocused
属性,当您的其他属性更改并且满足条件时,只需将此IsFocused
设置为 true。
这是小型演示JSFiddle。