Централизация пользовательских правил Kendo Validator

Я планирую иметь несколько пользовательских правил для моего валидатора кендо, которыми я хочу поделиться со всеми своими валидаторами. В моем коде на валидаторе у меня есть:

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

    }
}

Поскольку я использую версию с открытым исходным кодом, есть ли простой способ централизовать правила для всех валидаторов? Есть ли статическое свойство, которое я установил с помощью правил? Или это лучший способ определить общий метод, который возвращает объект, и вызвать его во время инициализации?


person Brian Mains    schedule 04.09.2014    source источник
comment
универсальный метод - ваше решение, статического свойства нет.   -  person cwishva    schedule 04.09.2014


Ответы (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;
}
person Thiru    schedule 23.12.2014