为什么我的字符串值通过敲除验证,但整数值不通过?

时间:2013-03-27 13:50:09

标签: javascript knockout.js knockout-validation

将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?

1 个答案:

答案 0 :(得分:1)

maxLengthminLength用于字符串,对于需要使用minmax的数字,否则验证最终会将值转换为字符串。看看this fiddle

self.myInt = ko.observable(data.myInt).extend({
        required: true,
        number: true,
        min: 100000,
        max: 999999
    });