1

将淘汰赛 2.2.1 与最新的淘汰赛验证.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);

除了用字符串而不是整数为我的视图模型播种之外,我还能做些什么来解决这个问题?

4

1 回答 1

1

maxLengthandminLength用于字符串,用于您需要使用的数字minand max,否则验证最终会将值转换为字符串。看看这个小提琴

self.myInt = ko.observable(data.myInt).extend({
        required: true,
        number: true,
        min: 100000,
        max: 999999
    });
于 2013-03-27T16:05:52.517 回答