当通过javascript将enabled属性设置为true时,必需Field Validator将触发

时间:2011-07-22 07:44:17

标签: javascript asp.net html

我有一个asp:dropdownlist,在其onchange事件中,我调用了一些javascript,其中我启用并禁用了一些必需的字段验证器,一旦RFV启用它就会显示附加到它的错误消息。 !!!!!!! ...

我希望它只能在启用时不显示错误消息....

提交单击它应显示msg ...

AND JAVASCRIPT:

function CriteriaChange(ddlCType)
{
    switch (ddlCType.value)
    {
        case "1":  //Weightage
            ValidatorEnable(document.getElementById('<%= rfvWeightage1.ClientID %>'), true);
            break;

        case "2":   //Any One
            ValidatorEnable(document.getElementById('<%= rfvAppraiser.ClientID %>'), true);
            break;

    }
}

2 个答案:

答案 0 :(得分:3)

由于visibility CSS样式是在调用Validator进行验证时切换的样式,因此您可以在启用验证器后立即设置此样式。在提交时仍会再次调用验证事件,因此它会覆盖此设置以在表单提交时显示验证器。

function CriteriaChange(ddlCType)
{
    var val = null;
    switch (ddlCType.value)
    {
        case "1":  //Weightage
            val = document.getElementById('<%= rfvWeightage1.ClientID %>');
            break;

        case "2":   //Any One
            val = document.getElementById('<%= rfvAppraiser.ClientID %>');
            break;
    }
    if (val != null)
    {
        ValidatorEnable(val, true);
        val.style.visibility = 'hidden'; // or collapse, if you prefer
    }
}

答案 1 :(得分:0)

试试这个......

function CriteriaChange(ddlCType) {     
    switch (ddlCType.value)     
    {       
        case "1":  //Weightage             
            // ValidatorEnable(document.getElementById('<%= rfvWeightage1.ClientID %>'), true);
            document.getElementById('<%= rfvWeightage1.ClientID %>').enabled = true;
            document.getElementById('<%= rfvAppraiser.ClientID %>').enabled = false;
            break;
        case "2":   //Any One             
            //ValidatorEnable(document.getElementById('<%= rfvAppraiser.ClientID %>'), true);
            document.getElementById('<%= rfvAppraiser.ClientID %>').enabled = true;
            document.getElementById('<%= rfvWeightage1.ClientID %>').enabled = false;
            break;
    }
} 

注意:我继续禁用另一个验证器,以防它们来回切换值,这样它们就不会同时启用。

希望这有帮助。