使用Ko.validation和Ko.mapping进行异步验证

时间:2015-07-28 03:45:45

标签: asynchronous knockout.js knockout-mapping-plugin knockout-validation

我使用ko.validation和ko.mapping在表格中显示一些数据。可以编辑此数据,也可以将更多数据添加到表格中。

请参阅小提琴:http://fiddle.jshell.net/juandozco/v9L69g8a/5/

我重复使用表单编辑或创建此项目。我的问题是,项目中的某些属性无法编辑,所以我在编辑模式下隐藏了这些属性,但验证仍然发生,并且不会让表单继续。

我尝试了3种不同的东西,见行:

  

1,90和112在我小提琴的javascript部分

我如何实现此验证?

1 个答案:

答案 0 :(得分:1)

你需要skip编辑部分的验证,所以你需要在你的observable上添加像validatable: false这样的扩展器。

代码:

self.edit = function (user) {
    self.User().userName.extend({ validatable: false }); // Key here
    self.editing(true);
    ............
    self.User().userName(user.userName());
};

工作样本 here