当'If'绑定表达式变为true时设置默认焦点

时间:2013-11-27 11:33:40

标签: knockout.js knockout-2.0

我的表格中有'如果'应用绑定和一些输入控件。所以它看起来类似于:

<form data-bind="if: MyExpression">
   <input id="input1" class="autofocus"></input>
   <input id="input2"></input>
   <input id="input3"></input>
</form>

现在,我想通过&#39;自动对焦&#39;来关注输入。无论什么时候,我的表现都是“我的表现”。转为true,表单显示在屏幕上。 任何想法如何实现?

到目前为止我试过这个:

this.MyExpression.subscribe(function (isTrue) {
    if (isTrue) {
        $('.autofocus').focus();
    }
});

但这没有用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以在第一个输入中使用hasfocus binding

<form data-bind="if: MyExpression">
   <input id="input1" data-bind="hasfocus: true"></input>
   <input id="input2"></input>
   <input id="input3"></input>
</form>

演示JSFiddle