SetFocus无法正常工作

时间:2016-06-17 07:11:52

标签: knockout.js

在我的淘汰应用中,我试图像这样使用setFocus

<div class="row" data-bind="visible: $root.inOwnerShipChangingMode">
        <div class="medium-12 columns">
            <input type="text" placeholder="Enter user name to give ownership (trans)" data-bind="autoComplete: { selected: $root.newOwnerForLocationId, options: observableArrayOfUsersWhoCanBecomeOwners}, hasFocus: true" />
        </div>
</div>

它不起作用。您可以看到隐藏的元素取决于 $ root.inOwnerShipChangingMode 。我试过把它从可见的绑定中删除,但仍然无法正常工作。

我的淘汰赛版本是3.3.0。

1 个答案:

答案 0 :(得分:0)

您是否尝试将hasFocus绑定到可观察值 - 或者甚至只是返回true的函数? hasFocus是双向绑定,因此可能无法使用不能在两个方向上工作的内容。

另外,如果绑定&lt; input /&gt;在绑定时元素不可见,浏览器可能会拒绝授予它焦点。稍后设置父&lt; div&gt;时要显示,你的&lt; input /&gt;因为hasFocus没有理由重新绑定而没有得到重点 - 它仍然具有与加载时相同的值/属性/属性,并且没有任何改变尊重。

所以我建议为hasFocus分配一个observable,即使它的值永远不会改变。