Javascript 为什么我的字符串值通过了敲除验证,而整数值没有通过?

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

在最新的knockout-validation.js中使用knockout 2.2.1

有关我的问题的工作示例,请参见以下JSFIDLE:

如您所见,当加载现有数据时,整数值未通过验证,但字符串值通过验证。这仅在使用现有数据初始化viewModel时发生

我知道问题出在我的isValid标志中,因为注释掉它会删除加载时的验证错误

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
    });