将knockout 2.2.1与最新的knockout-validation.js一起使用。
请参阅以下jsfiddle以获取我的问题的工作示例:
http://jsfiddle.net/tbstudee/keRPY/4/
正如您在加载现有数据时所看到的,整数值未通过验证,但字符串值为。只有在使用现有数据初始化viewModel时才会发生这种情况。
我知道问题出现在我的isValid标志中,因为将其注释掉会删除加载时的验证错误。
self.isValid = ko.computed(function () {
return ko.validation.group(
self,
{
observable: true,
deep: true
}).showAllMessages(true);
}, self);
我可以做些什么来解决这个问题,除了使用字符串而不是整数生成我的viewModel?
答案 0 :(得分:1)
maxLength
和minLength
用于字符串,对于需要使用min
和max
的数字,否则验证最终会将值转换为字符串。看看this fiddle
self.myInt = ko.observable(data.myInt).extend({
required: true,
number: true,
min: 100000,
max: 999999
});