【发布时间】:2016-01-26 14:03:49
【问题描述】:
我一直在使用 Knockout,现在尝试使用单独的验证库。我的 ko 版本是 3.3.0,淘汰赛验证是 2.0.3,所以它们应该是最新的。我正在使用https://github.com/Knockout-Contrib/Knockout-Validation 中介绍的 Chrome 运行这个简单的示例:
var myViewModel = ko.validatedObservable({
property1: ko.observable().extend({ required: true }),
property2: ko.observable().extend({ max: 10 })
});
console.log(myViewModel.isValid()); //false
myViewModel().property1('something');
myViewModel().property2(9);
console.log(myViewModel.isValid()); //true
但是,当在 Chrome 中本地运行它时,这两个 isValid() 调用都为真,所以即使它是必需的并且它是空的,它也是有效的。但是,一些验证正在起作用:
var myViewModel = ko.validatedObservable({
property: ko.observable().extend({ min: 10 })
});
myViewModel.isValid() // true, should be false though I guess?
myViewModel().property("test")
myViewModel.isValid() // false
那里可能有什么问题?这两个库都被大量使用并且是最新版本,所以我不明白为什么这些示例不起作用。
【问题讨论】:
标签: javascript knockout.js javascript-objects observable knockout-validation