2013-05-06 95 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