Добавление проверки JS на CompareValidator - PullRequest
1 голос
/ 06 января 2011

возможно ли добавить функцию проверки JS для CompareValidator?
я не могу использовать CustomValidator.

1 Ответ

0 голосов
/ 12 ноября 2011

Я не уверен, нужно ли вам это по-прежнему или нет, но я полагаю, что нет, поскольку это без ответа ...

Ну, вы не можете сделать это напрямую, однако вы можете скрыть оригинальную функцию, котораяотвечает за проверку CompareValidator и представляет новую.Это возможно потому, что все функции проверки происходит от ASP.NET в глобальном масштабе, который является ... спорно, но полезно в этом случае.

1004 * Вы можете найти следующий модуль, получить работу.Это выставляет вам два метода.Сначала называется addFunction позволяет добавить одну или несколько функций для пользовательской проверки.Эта функция должна возвращать Boolean и она использует три параметра Объект валидатора , TargetObject и CompareObject соответственно.Второй, называемый disableOldFunction , позволяет полностью избавиться от старой функции проверки, которая вызывается модулем, если все ваши функции действительны.
    var MyModules = {};
    MyModules.CompareValExtension = function ()
    {
        var functions = new Array();
        var oldFunc = null, disabled = false;

        function myCompareValidatorEvaluateIsValid(val)
        {
            var valid = true;
            if (oldFunc && functions.length)
            {
                for (i in functions)
                {
                    valid = functions[i](val, document.getElementById(val.controltovalidate), document.getElementById(val.controltocompare));
                    if (!valid) { break; }
                }
                if (!disabled && valid)
                {
                    valid = oldFunc(val);
                }
            }
            return valid;
        }

        if (typeof CompareValidatorEvaluateIsValid != 'undefined')
        {
            oldFunc = CompareValidatorEvaluateIsValid;
            window.CompareValidatorEvaluateIsValid = myCompareValidatorEvaluateIsValid;
        }

        var me = {};
        me.addFunction = function (func) { if (typeof func == "function") { functions.push(func); } }
        me.disableOldFunction = function () { disabled = true; }
        return me;
    } ();

Пример использования:

    MyModules.CompareValExtension.addFunction(function (val, elem, comp)
    {
        return elem.value == "my value"; 
    });
    MyModules.CompareValExtension.disableOldFunction();

Предупреждение: Пожалуйста, поместите этот модуль где-нибудь внизу страницы, чтобы убедиться, что сценарии проверки по умолчанию уже существуют.Вы также можете немного переписать модуль, чтобы отложить инициализацию, пока документ не будет готов.

...