【发布时间】:2013-06-11 19:22:09
【问题描述】:
我正在使用 Knockout Validation 插件并使用扩展器根据需要设置一个 observable:
myObservable.extend({required:true});
我可以在添加后删除扩展程序吗?
【问题讨论】:
标签: knockout.js knockout-validation knockout-extensions
我正在使用 Knockout Validation 插件并使用扩展器根据需要设置一个 observable:
myObservable.extend({required:true});
我可以在添加后删除扩展程序吗?
【问题讨论】:
标签: knockout.js knockout-validation knockout-extensions
您可以从可观察对象中删除所有与验证相关的属性,这些属性是通过调用 ko 验证添加的:
myObservable.extend({validatable: false});
或者,如果您只想删除所需的验证,您可以将其从 rules 集合中删除:
myObservable.rules.remove(function (item) {
return item.rule == "required";
});
}
演示JSFiddle.
但是 ko 验证支持 conditional validation,因此您可以指定一些条件何时验证应该起作用,所以也许这就是您需要的:
myObservable.extend({
required: {
message: "Some message",
onlyIf: function () { return //some condition; }
}
});
【讨论】:
myObservable.extend({validatable: false}); 调用正是这样做的,它删除了由.extend({required:true}); 或任何其他规则添加的所有与验证相关的内容。