最新のknockout-validation.jsでノックアウト2.2.1を使用します。
私の問題の実際の例については、次の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);
これを回避するには、ビューモデルにintではなく文字列をシードする以外に何ができますか?