我正在使用knockout.js和knockout.validation。我创建了一个包含的书籍视图模型 书籍作者姓名和书名的2个属性:
function BookViewModel(bookObject) {
var self = this;
self.AuthorName = ko.observable(bookObject.AuthorName)
.extend({
required: { message: "Please enter menu name" },
minLength: 4,
maxLength: 10
});
self.Name = ko.observable(bookObject.Name)
.extend({
required: { message: "Please enter course name" },
minLength: 4,
maxLength: 10
});
}
我在属性上应用了原生验证规则。现在我知道我们可以通过以下方式检查财产价值是否有效:
bookViewModelObject.AuthorName.isValid()
现在借助上述声明,我们可以检查用户输入的作者姓名是否符合我们的验证规则。我的问题是如何在单个语句中检查bookViewModel的所有属性是否有效?意思是这样的:
bookViewModelObject.isValid()
答案 0 :(得分:2)
您可以使用ko.validation.group
:
var viewModel = new BookViewModel(data);
viewModel.errors = ko.validation.group(viewModel);
在viewModel.errors
中,viewModel
会有多少错误。
答案 1 :(得分:0)
不确定这是否有效但现在(使用KnockoutJS 3.0和验证插件2.1)你可以做到这一点,即。
ko.validation.init();
var validatedViewModel = ko.validatedObservable(new BookViewModel(book))();
ko.applyBindings(validatedViewModel);
validatedViewModel.isValid();
注意ko.validatedObservable()
方法。
这是适当的jsfiddle。