Javascript Knockout.JS标签在foreach中不起作用
我以前使用过HTML5标签“for”属性,它工作得很好,您可以单击它,它会将焦点更改为相关的表单项。但是,在这种情况下,每个项目的名称部分由其索引决定,标签似乎不会响应单击 HTMLJavascript Knockout.JS标签在foreach中不起作用,javascript,html,knockout.js,blade,Javascript,Html,Knockout.js,Blade,我以前使用过HTML5标签“for”属性,它工作得很好,您可以单击它,它会将焦点更改为相关的表单项。但是,在这种情况下,每个项目的名称部分由其索引决定,标签似乎不会响应单击 HTML <div data-bind='foreach: people'> <div class="personWell"> <label data-bind="attr: {'for':'personsObserved['+ $index()+'][name]'}
<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属性
您是否正在尝试解析“personsObserved[0][name]”?因为这只是你做的一个字符串,很确定它不会被执行。您也可以只执行'person'+$index()。此外,我一直认为这是使用'id'而不是'name'实现的。名称计算执行正确,如输出的源代码所示。我以前使用的所有标签都在其“for”中引用了name字段,但看起来它并没有执行它。如果“personsObserved”数组中的第一个“person”是,我希望看到它的名称。我不知道其他字段是如何工作的。我只见过用“id”完成的。你试过了吗?你完全正确。它以前似乎可以工作的原因是,我使用blade语法生成标签和输入,并自动插入ID。