2013-05-06 55 views
1

我有分散在我的視圖內的項目,這些項目基於日期,下拉選項等可見。我想使用ko驗證,因爲它很好地將驗證邏輯放在我的模型中,而不必像使用jquery驗證一樣使用一個愚蠢的表單。使ko驗證僅驗證可見項目

我看到的與jQuery驗證的獎金是,它只驗證可見項目,即使他們有所需的類。反正有沒有從ko驗證中獲得這個功能?

回答

1

在你的淘汰賽模式中,我猜你應該有一個可見性標誌。您可以使用基於該標誌的onlyIf選項。例如:

self.IsFieldVisible = ko.observable(true); //Or False 
self.FieldToValidate= ko.observable().extend({ 
    required: { 
    onlyIf: function() { 
     return self.IsFieldVisible(); 
    } 
    } 
}); 
+0

以及如果我需要隱藏其他類型的驗證消息(例如,檢查是否爲數字)會怎麼樣? – 2013-07-19 17:19:23

+1

您可以對任何驗證類型使用'onlyIf',甚至自定義驗證。看看這個[問題](http://stackoverflow.com/questions/14601463/conditional-validation-not-working-for-anonymous-knockout-validation-rule)看看它如何與自定義驗證 – estebane97 2013-07-22 03:56:43