为什么我的字符串值通过敲除验证,但整数值不?
问题描述:
使用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字符串而不是整数?
答
maxLength
和minLength
用于字符串,对于需要使用的数字min
和max
,否则验证最终会将值转换为字符串。看看this fiddle
self.myInt = ko.observable(data.myInt).extend({
required: true,
number: true,
min: 100000,
max: 999999
});
这实际上也抵消了另外一个问题,因为你有'号码:您的字符串值TRUE',但由于'maxLength'检查是有效的。 – Tyrsius 2013-03-27 16:07:43