使用Knockout Validation验证集合中的可观察对象

时间:2013-04-26 06:06:10

标签: javascript knockout.js knockout-validation

我有一个消息字段,people的集合被绑定在一个无序列表中,每个列表都附有一个下拉列表和一个默认选择。

消息字段上的验证有效,擦除文本并显示错误并且错误计数增加。但是,当您将其中一个下拉条目更改为"选择.." (实际上取消选择该选项),您会收到一个"此字段是必需的"但是,errors对象似乎没有更新。它显然必须与它是一个集合的事实有关?按下提交按钮或查看范围数据绑定时,请查看我的意思。

我还需要验证才能启用动态添加的行,因此当您按下“添加另一行”时我也需要增加错误对象。

http://jsfiddle.net/goneale/TJGS3/

有人可以看看这个并帮我解决一下吗?

1 个答案:

答案 0 :(得分:1)

<强>更新 使用最新版本的验证库,您可以使用live:true选项让它听取observableArrays

grouping: { deep: true, observable: true, live: true }

http://jsfiddle.net/fYrbt/29/

旧回答:

遗憾的是,插入新项目时,不会重新评估该组。订阅数组并明确地执行。

this.items.subscribe(function() {
     this.errors = ko.validation.group(this);
     this.errors.showAllMessages();
}, this);

http://jsfiddle.net/fYrbt/