有条件地删除验证属性

时间:2011-02-28 10:38:17

标签: asp.net validation

我有一个面板,我显示弹出几个文本框控件有几个验证控件和点击按钮我正在检查验证现在我想添加一个复选框检查它应该禁用一些控件并删除他们的验证属性和取消选中它应用相同我能够使这些控件禁用但仍然点击该按钮,它要求验证这些控件

关于复选框的点击事件我正在调用一个javascript函数并将disabled属性应用于某些控件

function disableOtherElements(e)
{
    var id = e.checked;
    if (id)
    {
        $('.dd').attr('disabled', true);
    }
    else
    {
        $('.dd').removeAttr('disabled');
    }
}

dd是分配给我想要禁用的所有控件的类。 我必须做什么来删除验证属性

1 个答案:

答案 0 :(得分:1)

实现这一目标的一种方法是使用ASP.NET验证器公开的client-side API

首先,您必须遍历Page_Validators以找到定位元素的所有验证程序,然后使用ValidatorEnable()启用或禁用验证:

function enableValidation(element, enable)
{
    $.each(Page_Validators, function() {
        if (this.controltovalidate == element.id) {
            ValidatorEnable(this, enable);
        }
    });
}

function disableOtherElements(e)
{
    if (e.checked) {
        $('.dd').each(function() {
            enableValidation(this, false);
        }).attr('disabled', true);
    } else {
        $('.dd').each(function() {
            enableValidation(this, true);
        }).removeAttr('disabled');
    }
}