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

时间:2017-03-10 18:55:01

标签: 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.ClientID %>').show();
            document.getElementById("<%=rfv_charge_code.ClientID %>").enabled = true;
        } else {
            $('#<%=pnl_charge_code.ClientID %>').hide();
            document.getElementById("<%=rfv_charge_code.ClientID %>").enabled = false;
        }
    }

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

2 个答案:

答案 0 :(得分:0)

你正在混合使用jQuery和vanilla 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);
    }
}

答案 1 :(得分:0)

Welp,我将其转换为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;
            }


    }