集中Kendo Validator自定义规则

时间:2014-09-04 13:00:24

标签: javascript validation kendo-ui telerik kendo-validator

我打算为我的kendo验证器设置一些自定义规则,我希望在所有验证器之间共享。在我的验证器代码中,我有:

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

    }
}

由于我使用的是开源版本,是否有一种简单的方法可以将规则集中在所有验证器上?我在规则中设置了静态属性吗?或者是定义返回对象的泛型方法的最佳方法,并在初始化时调用它?

1 个答案:

答案 0 :(得分:1)

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

演示 - 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;
}