我使用Knockout.js进行页面设置并使用Knockout-Validation。
在页面加载期间,我在选择框上放置了另一个插件,该选项框会触发更改,从而触发验证。我需要能够使用JS清除该错误,因此我可以从一个外观新鲜的用户界面开始,并在表单帖子上提供反馈或选择更改框。
我找不到任何允许我在Knockout-Validation中清除错误的内容。
答案 0 :(得分:30)
可能更好的方法是遵循已经在淘汰赛验证中实施的内容来说property.isModified(false);
如果您要重置整个视图模型,只需遍历所有经过验证的属性并调用isModified(false)
请参阅comment from Eric Barnard here
希望有所帮助
答案 1 :(得分:24)
迟到的答案,但如果有人需要它:
// assuming the ko.observable on the checkbox is called propBoolean
var propBooleanlValid = ko.validation.group(self.propBoolean, { deep: false });
propBooleanlValid .showAllMessages(false);
它将隐藏消息直到下一次验证。
答案 2 :(得分:4)
答案 3 :(得分:1)
解决此问题的一种方法是使用自定义验证器,在其中检查视图模型中的标志,例如“ ignoreValidation”。如果该标志为true,则让验证器通过。
该验证器的外观示例:
viewmodel.userHasPremiumMembership.extend({
validation: [
{
validator: function () {
if (viewmodel.ignoreValidation) {
return true;
}
return viewmodel.userHasPremiumMembership();
},
message: 'User needs to have premium membership.'
}
]
});
答案 4 :(得分:0)
如果使用实体管理器,请确保在验证中不包含entityAspect,因为它连接到所有其他实体。另见 How to rollback knockout validation errors?