2013-03-27 65 views
1

使用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

maxLengthminLength用於字符串,對於需要使用的數字minmax,否則驗證最終會將值轉換爲字符串。看看this fiddle

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

這實際上也抵消了另外一個問題,因爲你有'號碼:您的字符串值TRUE',但由於'maxLength'檢查是有效的。 – Tyrsius 2013-03-27 16:07:43

相關問題