在淘汰赛中使用foreach时设置输入的值

时间:2014-03-04 17:37:31

标签: knockout.js

我正在使用attr绑定来设置输入标记的名称和值。问题是我不知道用于值的绑定。到目前为止,我已尝试过文本和值,但没有运气。我的代码如下所示:

<div data-bind="foreach: witnesses">
    <input data-bind="attr: { name: 'firstName', text: firstName }"/>    
</div>

我希望这会呈现为:

<input name='firstName value=`enter code here`'Joe'>

甚至

<input name='firstName'>Jo`enter code here`e</input>

如何实现这一目标?另外,如何获取foreach循环的当前迭代的索引,因为我需要将其添加到我的名字中..

标记

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

<div data-bind="foreach: witnesses">
<input data-bind="attr: { name: 'firstName' + $index()}, value: firstName"/>    
</div>

这里我将foreach索引(从零开始)连接到input元素的名称。它实际上并不是必需的,但既然你提到它我认为你需要它。

如果你想要识别所有这些输入,那么使用css类可能会更有意义。

答案 1 :(得分:1)

即时解决方案。顺便说一句,你忘记了type属性。你应该设置它。

 <div data-bind="foreach: witnesses">
         <input type="text" name='firstName' data-bind="value: 'enter code here ' + firstName"/>    
      </div>

正如其他人提到的那样$index为你提供了循环中当前项目的索引。