我有一个页面设置与Knockout.js和使用敲除验证。在页面加载过程中,我在一个选择框上放置了另一个插件,它会触发一个更改,它会触发验证。我需要能够使用JS清除该错误,这样我就可以从一个新的界面开始,并对表单帖子或选择框更改给予反馈。我找不到任何可让我清除Knockout-Validation中错误的项目。
bgtovc5b1#
可能一个更好的方法是遵循敲除验证中已经实现的方法,即property.isModified(false);如果您有一个完整的视图模型要重置,只需遍历所有已验证的属性并调用isModified(false)即可请参阅comment from Eric Barnard here希望能有所帮助
property.isModified(false);
isModified(false)
1hdlvixo2#
迟到的回答但如果有人需要它:
// assuming the ko.observable on the checkbox is called propBoolean var propBooleanlValid = ko.validation.group(self.propBoolean, { deep: false }); propBooleanlValid .showAllMessages(false);
它将隐藏消息,直到下次验证。
rqenqsqc3#
通过实施此拉取请求找到了答案。https://github.com/Knockout-Contrib/Knockout-Validation/pull/184提供我所需的功能。
cngwdvgl4#
解决这个问题的一个方法是使用一个自定义的验证器,在这个验证器中,你可以检查视图模型中的一个标志,比如“ignoreValidation”,如果这个标志为真,那么你就让验证器通过。验证器的示例如下:
viewmodel.userHasPremiumMembership.extend({ validation: [ { validator: function () { if (viewmodel.ignoreValidation) { return true; } return viewmodel.userHasPremiumMembership(); }, message: 'User needs to have premium membership.' } ] });
watbbzwu5#
如果使用实体管理器,请确保在验证中不包括entityAspect,因为它连接到所有其他实体。
5条答案
按热度按时间bgtovc5b1#
可能一个更好的方法是遵循敲除验证中已经实现的方法,即
property.isModified(false);
如果您有一个完整的视图模型要重置,只需遍历所有已验证的属性并调用
isModified(false)
即可请参阅comment from Eric Barnard here
希望能有所帮助
1hdlvixo2#
迟到的回答但如果有人需要它:
它将隐藏消息,直到下次验证。
rqenqsqc3#
通过实施此拉取请求找到了答案。
https://github.com/Knockout-Contrib/Knockout-Validation/pull/184
提供我所需的功能。
cngwdvgl4#
解决这个问题的一个方法是使用一个自定义的验证器,在这个验证器中,你可以检查视图模型中的一个标志,比如“ignoreValidation”,如果这个标志为真,那么你就让验证器通过。
验证器的示例如下:
watbbzwu5#
如果使用实体管理器,请确保在验证中不包括entityAspect,因为它连接到所有其他实体。