在attr绑定内部不能计算可观察的敲除

在attr绑定内部不能计算可观察的敲除

问题描述:

我正在尝试使用jquery.validate with knockout。我有对象的列表,里面foreach结合,在attr绑定内部不能计算可观察的敲除

我有这样的代码:

<tbody data-bind="foreach: fee"> 
    <tr> 
      <td> 
       <input type="text" data-bind="textInput: fee, attr: {name : 'srv'+$index()}" data-val="true" data-val-number="error msg" data-val-regex="err msg" data-val-regex-pattern="\d+(\.\d{1,2})?" data-val-required="required"/> 

       <span class="field-validation-valid" data-valmsg-replace="true" data-bind="attr : { 'data-valmsg-for': 'srv'+$index()}" /> 
     </td> 
    </tr> 
</tbody> 

输入名称正确计算,eg. srv0, srv1等等 而验证范围的名称保持srv+$index()

如何解决?

+0

这_might_是因为你的自我封闭span标签 - 起点和跨度的结束标记是强制​​性的。尝试改变它有一个''。无法解决问题,但无论如何,你的代码会更好。 –

+0

嗯,[不,不是](http://jsfiddle.net/q21umv9z/)。您可能需要发布更多代码来阐明发生的事情。 –

+0

@JamesThorpe这真的是所有的代码,只是一个数据绑定=“foreach:费用”在tbody – Stuntman

这里可以正常工作。

vm = { 
 
    fee: ko.observableArray([{ fee: 1 }, { fee: 2 }]) 
 
}; 
 

 
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<table> 
 
<tbody data-bind="foreach: fee"> 
 
    <tr> 
 
      <td> 
 
       <input type="text" data-bind="textInput: fee, attr: {name : 'srv'+$index()}" data-val="true" data-val-number="error msg" data-val-regex="err msg" data-val-regex-pattern="\d+(\.\d{1,2})?" data-val-required="required"/> 
 

 
       <span class="field-validation-valid" data-valmsg-replace="true" data-bind="attr : { 'data-valmsg-for': 'srv'+$index()}" /> 
 
     </td> 
 
    </tr> 
 
</tbody> 
 
</table>