2014-09-04 51 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; 
}