Javascript 为什么我的字符串值通过了敲除验证,而整数值没有通过?
在最新的knockout-validation.js中使用knockout 2.2.1 有关我的问题的工作示例,请参见以下JSFIDLE: 如您所见,当加载现有数据时,整数值未通过验证,但字符串值通过验证。这仅在使用现有数据初始化viewModel时发生 我知道问题出在我的isValid标志中,因为注释掉它会删除加载时的验证错误Javascript 为什么我的字符串值通过了敲除验证,而整数值没有通过?,javascript,knockout.js,knockout-validation,Javascript,Knockout.js,Knockout Validation,在最新的knockout-validation.js中使用knockout 2.2.1 有关我的问题的工作示例,请参见以下JSFIDLE: 如您所见,当加载现有数据时,整数值未通过验证,但字符串值通过验证。这仅在使用现有数据初始化viewModel时发生 我知道问题出在我的isValid标志中,因为注释掉它会删除加载时的验证错误 self.isValid = ko.computed(function () { return ko.validation.group( se
self.isValid = ko.computed(function () {
return ko.validation.group(
self,
{
observable: true,
deep: true
}).showAllMessages(true);
}, self);
除了用字符串而不是整数为我的viewModel种子外,我可以做些什么来解决这个问题?
maxLength
和minLength
用于字符串,用于需要使用min
和max
的数字,否则验证最终将值转换为字符串。看看
maxLength
和minLength
用于字符串,用于需要使用min
和max
的数字,否则验证最终将值转换为字符串。看看
这实际上也消除了另一个问题,因为字符串值上有
number:true
,但由于maxLength
检查,它是有效的。这实际上也消除了另一个问题,因为字符串值上有number:true
,但由于maxLength
检查,它是有效的。
self.myInt = ko.observable(data.myInt).extend({
required: true,
number: true,
min: 100000,
max: 999999
});