2012-12-05 89 views
13

我有一个页面设置与Knockout.js和使用Knockout验证。Knockout验证清除错误

在页面加载过程中,我在另一个选择框上放置了另一个插件,该插件触发了一个更改,它将触发验证。我需要能够使用JS清除该错误,这样我才能从全新的UI开始,并对表单发布或选择框更改提供反馈。

我找不到任何能够让我清除Knockout-Validation中的错误的东西。

回答

4

通过执行此Pull请求找到答案。

https://github.com/Knockout-Contrib/Knockout-Validation/pull/184

给我的特点,我需要。

+0

不要冒犯,但我觉得这个答案不是人们应该采取的行动,当他们想要这个功能。从那里我downvote。我赞成你的问题,但它是一个很好的问题! :) –

25

可能是如下什么是淘汰赛验证已经实现了一个更好的办法是说property.isModified(false);

,如果你有一个整体的视图模型通过所有的验证的属性重置简单循环,并呼吁该isModified(false)

见在comment from Eric Barnard here

希望帮助

+0

谢谢。另外,这可能对其他人很明显,但您必须在清除该字段后执行此操作。例如:_thisComment(''); _this.Comment.isModified(假)。轻松验证重置。 –

+1

这正是'showAllMessages(false)'在内部所做的,由@yoann回答 –

24

晚的答案,但如果有人需要它:

// assuming the ko.observable on the checkbox is called propBoolean 
var propBooleanlValid = ko.validation.group(self.propBoolean, { deep: false }); 
propBooleanlValid .showAllMessages(false); 

它会隐藏消息直到下一次验证。

+2

这很好,谢谢!这应该在ko验证文档中。 – Ross

+2

注意:确保你的配置中有'messagesOnModified:true'。如果它是假的,那么邮件将始终显示 –

+0

我觉得这是三个最好的 –