无法使用淘汰验证验证自定义组

Unable to validate a custom group using Knockout Validation

本文关键字:验证 自定义 淘汰      更新时间:2023-09-26

我不知道如何获得Knockout Validation插件来验证视图模型属性的自定义选择。我可以调用isValid()来成功验证整个视图模型。

我遵循了这里列出的涵盖场景的文档,并检查了我能找到的关于堆栈溢出的所有答案。

我的代码是这样的:

function MyViewModel() {
    var self = this;
    self.myproperty = ko.observableArray().extend({ minLength: { message: 'You must specify at least one item.'} })
    self.anotherproperty = ko.observable().extend({ required: { params: true, message: 'You must supply a value.'} });
    self.IsEntireModelValid = function() {
         if (!self.isValid()) {
               self.errors.showAllMessages();
               return false;
         }
         else {
              return true;
    }
    self.IsAnotherPropertyValidOnly = function() {
         var errors = ko.validation.group(self.anotherproperty);
         if (errors.length > 0) {
            errors.showAllMessages();
            return false;
         } 
         else {
            return true;
         }
    }

当我调用self.IsAnotherPropertyValidOnly()时,errors变量不包含错误,但当我调用self.IsEntireModelValid()时,我得到正确的响应。

有人能指出我做错了什么吗?

您需要使用errors().length

self.IsAnotherPropertyValidOnly = function() {
     var errors = ko.validation.group(self.anotherproperty);
     if (errors().length > 0) {
        errors.showAllMessages();
        return false;
     } 
     else {
        return true;
     }
}
http://jsfiddle.net/WY7V3/2/