2

我们如何使用 JQuery 访问 Asp.NET 验证器,如必填字段、正则表达式等?
我们如何使用 Jquery 控制它们的显示和自定义它们?

4

1 回答 1

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;
            }
        };
    });
}
于 2013-03-29T11:06:31.880 回答