javascript - Knockout.JS 标签在 foreach 中不起作用

标签 javascript html knockout.js laravel-blade

我过去使用过 HTML5 标签“for”属性,它效果很好,您可以单击它,它将把焦点更改到相关的表单项。但是,在这种情况下,每个项目的名称部分由其索引确定,标签似乎不会响应点击。

HTML

<div data-bind='foreach: people'>
    <div class="personWell">  
        <label data-bind="attr: {'for':'personsObserved['+ $index()+'][name]'}" class="content-label">Name</label> 
        <input type="text" data-bind="attr: {'name':'personsObserved['+ $index()+'][name]'}, value: name" required placeholder="Person Name"></input>

        <label data-bind="attr: {'for':'personsObserved['+ $index()+'][company]'}" class="content-label">Company</label>
        <input type="text" data-bind="attr: {'name':'personsObserved['+ $index()+'][company]'}, value: company" required placeholder="Company Name"></input>

        <button type="button" class="btn btn-xs btn-warning" data-bind='visible: $root.people().length > 1, click: $root.removePerson'>Delete</button>
    </div> 
</div>

输出源

<label data-bind="attr: {'for':'personsObserved['+ $index()+'][name]'}" class="content-label" for="personsObserved[0][name]">Name</label>

<input type="text" data-bind="attr: {'name':'personsObserved['+ $index()+'][name]'}, value: name" required="" placeholder="Person Name" name="personsObserved[0][name]">

如您所见,“for”和“name”属性匹配。但点击标签没有任何反应。

最佳答案

for 属性必须指定 HTML 5 中的 ID...它完全不能与 name 属性一起使用。

http://www.w3schools.com/tags/tag_label.asp

关于javascript - Knockout.JS 标签在 foreach 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502965/

相关文章:

javascript - 使用 Knockout JS 进行数据绑定(bind)

javascript - Kendo-knockoutjs 集成

javascript - 数组中的本地存储更新属性

javascript - 如何使用 JSON 在 Rest API 请求中发送不带引号的数值

javascript - 嵌入单选按钮

javascript - 为什么 "right click"没有更多地用于 Web 应用程序?

html - 如何仅使用 CSS 获得悬停效果

javascript - 通过从下拉列表中选择,启用另一个下拉列表

javascript - 如何从 html 页面运行 jar 文件或 java 方法?

javascript - 直接从事件处理程序中的目标元素访问 knockout 绑定(bind)值