Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/jQuery-在字段隐藏时禁用验证_Javascript_C#_Jquery_Asp.net_Validation - Fatal编程技术网

Javascript/jQuery-在字段隐藏时禁用验证

Javascript/jQuery-在字段隐藏时禁用验证,javascript,c#,jquery,asp.net,validation,Javascript,C#,Jquery,Asp.net,Validation,以下Javascript/jQuery在下拉列表中选择两个不同值之一时显示字段,但在其他情况下隐藏字段: function HideShowChargeCode() { var action = $('#<%=ddl_request_action.ClientID %>').val(); if (action == "3" || action == "4") { $('#<%=pnl_charge_code.Cl

以下Javascript/jQuery在下拉列表中选择两个不同值之一时显示字段,但在其他情况下隐藏字段:

    function HideShowChargeCode() {
        var action = $('#<%=ddl_request_action.ClientID %>').val();
        if (action == "3" ||  action == "4") {
            $('#<%=pnl_charge_code.ClientID %>').show();
            document.getElementById("<%=rfv_charge_code.ClientID %>").enabled = true;
        } else {
            $('#<%=pnl_charge_code.ClientID %>').hide();
            document.getElementById("<%=rfv_charge_code.ClientID %>").enabled = false;
        }
    }
函数HideShowChargeCode(){
var action=$('#').val();
如果(动作==“3”| |动作==“4”){
$('#')。show();
document.getElementById(“”).enabled=true;
}否则{
$('#')。隐藏();
document.getElementById(“”).enabled=false;
}
}

每个条件的第二部分应该控制验证,但它似乎没有按预期工作。我仍然遇到这样一个问题:当字段被隐藏时,它仍然试图被验证。非常感谢在隐藏字段时关闭验证的任何解决方案

您正在混合使用jQuery和香草JavaScript。尝试将代码更改为以下内容:

function HideShowChargeCode() {
    var action = $('#<%=ddl_request_action.ClientID %>').val();
    if (action == "3" ||  action == "4") {
        $('#<%=pnl_charge_code.ClientID %>').show().prop("disabled", false);
    } else {
        $('#<%=pnl_charge_code.ClientID %>').hide().prop("disabled", true);
    }
}
函数HideShowChargeCode(){
var action=$('#').val();
如果(动作==“3”| |动作==“4”){
$('#').show().prop(“禁用”,false);
}否则{
$('#').hide().prop(“已禁用”,true);
}
}

好吧,我将其转换为C#函数,果然一切正常:

 protected void ddl_request_action_SelectedIndexChanged(object sender, EventArgs e)
    {

        var selected = ddl_request_action.SelectedIndex;

            if (selected == 3 || selected == 4)
            {
                pnl_charge_code.Visible = true;
                rfv_charge_code.Enabled = true;
            }
            else
            {
                pnl_charge_code.Visible = false;
                rfv_charge_code.Enabled = false;
            }


    }

绝对是个好建议。我已经重构了我的代码以匹配您的代码,但仍然面临相同的问题。验证是在客户端还是在服务器上进行的?服务器端验证好的,您不能通过元素的属性控制服务器端验证。如果有一个客户机控件与此元素关联,则需要切换该客户机控件的enabled属性