【问题标题】:Javascript / jQuery - issue disabling validation when field is hiddenJavascript / jQuery - 隐藏字段时禁用验证
【发布时间】:2017-08-01 05:37:30
【问题描述】:

当下拉列表中的两个不同值之一被选中时,以下 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;
        }
    }

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

【问题讨论】:

    标签: javascript c# jquery asp.net validation


    【解决方案1】:

    您正在混合使用 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);
        }
    }
    

    【讨论】:

    • 绝对是一个很好的提示。我已经重构了我的代码以匹配您的代码,但仍然面临同样的问题。
    • 验证是发生在客户端还是服务器上?
    • 服务器端验证
    • 嗯,你不能通过元素的属性来控制服务器端的验证。如果存在与此元素关联的客户端控件,则需要切换该客户端控件的启用属性。
    • 在上面发布了我的解决方案
    【解决方案2】:

    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;
                }
    
    
        }
    

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 2018-06-21
      相关资源
      最近更新 更多