javascript - 添加到数组/集合后的 KnockoutJS 设置焦点

标签 javascript knockout.js

我有带有一系列诊断代码的 View 模型。在我的 html 中,我有一个按钮数据绑定(bind)到一个单击,它向数组添加一个空白诊断代码。这一切都有效。

我想不通的是,添加代码时如何将焦点设置到动态添加的文本框。我可以添加什么:

<h3>Diagnosis Codes<input type="button" value="Add" data-bind="click:AddDiagnosisCode"/></h3>
<div data-bind="foreach:DiagnosisCodes">
    <div><input type="text"  data-bind="value:$data"/>
    </div>
</div>

<script type="text/javascript">
    function AddDiagnosisCode(item)
    {
        item.DiagnosisCodes.push("");
    }

    var vm = {
       "DiagnosisCodes": ["2345","6789"]
    };

    var viewModel = ko.mapping.fromJS(vm);     
     ko.applyBindings(viewModel);
</script>

最佳答案

使用内置绑定(bind) hasFocus 并将其设置为 true

<input type="text" data-bind="value:$data, hasFocus: true">

参见 http://jsfiddle.net/eT3Y8/

关于javascript - 添加到数组/集合后的 KnockoutJS 设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730709/

相关文章:

javascript - 如何在html中输出一个json对象?

javascript - .each jQuery 仅以这种形式捕获最后一个元素

knockout.js - 通过索引从 observableArray 中获取对象

javascript - BackboneJS vs JavaScriptMVC vs KnockoutJS

knockout.js - 如何在 knockoutjs 中设置 optionsCaption 的值

javascript - 使用当前变量值动态创建 Javascript 函数

javascript - document.execCommand 在具有折叠范围的 IE 中无法正常工作(用户选择)

javascript - 简化 JavaScript 变量

javascript - 绑定(bind)到 knockout.js 中的类

jquery - 使用 jquery 插入表行后无法绑定(bind)值