2014-09-04 18 views
0

我打算为我的kendo验证器定制一些自定义规则,我想要在所有验证器中共享这些规则。在我的上一个验证码,我都有:集中Kendo验证器自定义规则

rules: { 
    bothorblank: function (input) { 
     ... 
    }, 
    mutualexclusive: function(input) { 

    } 
} 

由于我使用的开源版本,有一个简单的方法来集中所有的验证规则?我是否有规定的静态属性?或者是定义一个返回对象的泛型方法的最好方法,并在初始化时调用它?

+0

通用的方法是你的解决方案,没有任何静态属性。 – cwishva 2014-09-04 13:31:01

回答

0

我经历了同样的场景,我做了一些调整,使自定义规则成为跨页面/网站的全局工作。这里是解释的博客,在这里你可以找到演示。

演示 - http://jsfiddle.net/chandarmk/vrrq5wyu/

博客 - http://thirum.wordpress.com/2014/12/23/kendo-custom-global-validator/

下面是一些代码示例

kendo.ui.validator.rules.isValidDate = function (input, params) { 

    //ignore all other input that doesnt have this attribute 
    //case insensitive 
    if (!(input.is('[data-isValidDate]') || input.is('[data-isvaliddate]'))) return true; 

    var retVal = false; 

    var kendoDatePicker = input.data("kendoDatePicker"); 
    if (kendoDatePicker) { 
     var d = kendo.parseDate(kendoDatePicker.value(), ["yyyy/MM/dd HH:mm", "MM/dd/yyyy HH:mm", "MMM dd, yyyy h:mm tt", "yyyy/MM/dd", "MM/dd/yyyy", "MMM dd, yyyy"]); 
     retVal = d instanceof Date; 
     if (retVal) input.closest('.k-datepicker').removeClass("red-box"); 
     else input.closest('.k-datepicker').addClass("red-box"); 
    } 

    return retVal; 
}