Page.isValid条件验证中的问题

时间:2011-03-11 08:17:39

标签: c# javascript validation

我有一系列带有必填字段验证器的文本框和带有必填字段验证器的文本区域复选框和点击我正在检查验证的按钮都具有相同的验证组 检查复选框我正在禁用文本框及其验证并启用文本区域验证,但如果未选中复选框,则启用所有控件,但禁用textarea的验证,问题是如果未选中复选框,我是将值插入所有文本框但不插入文本区域并在后面的代码上点击保存按钮我在将值插入数据库之前检查Page.isValid但是此Page.isValid始终返回false,因为文本区域需要字段验证器,即使它被禁用了。

这个的JavaScript代码是

 // Function for enabling/disabling validation
function enableValidation(element, enable)
{
    $.each(Page_Validators, function()
    {
        if (this.controltovalidate == element.id)
        {
            ValidatorEnable(this, enable);
        }
    });
}

// Funcion Called on the click event of checkbox in 
// Provide Project Feedback popup in TestCATFeedback page.
function disableOtherElements(e)
{
    if (e.checked)
    {
        $('.disableIt').each(function()
        {
            enableValidation(this, false);
        }).attr('disabled', true).css('opacity', 0.3);
        $('.noteBox').each(function()
        {
            enableValidation(this, true);
        });

        $('.noteBox').focus();
    } 
    else
    {
        $('.disableIt').each(function()
        {
            enableValidation(this, true);
        }).removeAttr('disabled').css('opacity', 1);
        $('.noteBox').each(function()
        {
            enableValidation(this, false);
        });
    }
}

这里disableIt是分配给每个文本框控件的类,而notebox是分配给textarea的类

如何修复此问题,如果禁用验证控件,则不检查页面验证并返回true Page.isValid check

2 个答案:

答案 0 :(得分:0)

禁用控件的客户端验证和页面加载根据要求启用/禁用控件验证。

答案 1 :(得分:0)

我能找到解决此问题的唯一方法是创建一个“bPageIsValidated”变量。此变量默认为“false”。然后,在每个服务器端验证器中,将其设置为true。这可以让您知道验证是否已经发生。这是一种非常简单直接的技术,所以我认为应该非常方便地解决这个问题。