【问题标题】:Page.isValid Problem in conditional validationPage.isValid 条件验证中的问题
【发布时间】:2011-03-11 08:17:39
【问题描述】:

我有一系列带有必填字段验证器的文本框和一个带有必填字段验证器的 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);
        });
    }
}

这里disable是分配给每个textbox控件的类,notebox是分配给textarea的类

如何解决如果禁用验证控件则不检查页面验证并返回 true Page.isValid 检查的问题

【问题讨论】:

    标签: c# javascript validation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        • 2011-09-29
        • 2018-07-05
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多