2015-10-13 61 views
0

我正在嘗試使用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

回答

1

這裏可以正常工作。

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>