Управление валидаторами Asp.Net с помощью Jquery

Как мы можем получить доступ к валидаторам Asp.NET, таким как обязательное поле, регулярное выражение и т. д., с помощью JQuery?
Как мы можем управлять их отображением и настраивать их с помощью JQuery?


person Madhavan NR    schedule 29.03.2013    source источник
comment
Ваш вопрос достаточно широкий. Можете ли вы свести его к конкретным проблемам, с которыми вы можете столкнуться?   -  person Frédéric Hamidi    schedule 29.03.2013
comment
Как, например, Take с помощью Jquery, мы можем играть с элементами управления Asp.Net, например, мы можем удалять, вставлять, удалять, очищать и т. д., но с валидаторами Asp.Net очень сложно получить к ним доступ с помощью Jquery, я не могу их настроить с помощью Jquery??   -  person Madhavan NR    schedule 29.03.2013


Ответы (1)


Короче говоря, да, вы можете получить доступ к валидаторам из Javascript (на самом деле вам не нужен jQuery для этого), если, конечно, включена проверка на стороне клиента (т. е. на странице есть хотя бы один включенный и видимый валидатор с его EnableClientScript установлено значение true) .

Объекты валидатора доступны в глобальном массиве Page_Validators. Вы можете отключить или включить отдельные валидаторы с помощью ValidatorEnable() и принудительно выполнить проверку с помощью ValidatorValidate(). Эта статья MSDN содержит дополнительные сведения о проверке на стороне клиента. API.

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

if (window.Page_Validators) {
    $.each(window.Page_Validators, function(index, validator) {
        validator.__old_evaluationfunction = validator.evaluationfunction;
        validator.evaluationfunction = function(value) {
            var element = validator.controltovalidate;
            if (!validator.__old_evaluationfunction(value)) {
                // Validation failed - turn 'element' red, scream at the user, etc.
                return false;
            } else {
                // Validation succeeded - restore 'element' to its normal state.
                return true;
            }
        };
    });
}
person Frédéric Hamidi    schedule 29.03.2013