Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 禁用隐藏字段的RequiredFieldValidator_Javascript_Jquery_Asp.net_Validation - Fatal编程技术网

Javascript 禁用隐藏字段的RequiredFieldValidator

Javascript 禁用隐藏字段的RequiredFieldValidator,javascript,jquery,asp.net,validation,Javascript,Jquery,Asp.net,Validation,我有一个dropdownlist,在不隐藏时应该是强制的,所以我有一个RequiredFieldValidator <table runat="server" id="tblLocations" class="ts1"> <tr> <td class="tr0"> Location: </td> <td> <asp:DropDo

我有一个dropdownlist,在不隐藏时应该是强制的,所以我有一个RequiredFieldValidator

<table runat="server" id="tblLocations" class="ts1">
    <tr>
        <td class="tr0">
            Location:
        </td>
        <td>
            <asp:DropDownList ID="ddlLocations" runat="server">
            </asp:DropDownList>
            <asp:RequiredFieldValidator ID="rfvDdlLocations" runat="server" ControlToValidate="ddlLocations" InitialValue="0" validationgroup="LocationValidation"  ErrorMessage="Please select a Location" />
        </td>
    </tr>
</table>
但是,这不会禁用验证

我已经尝试过按照其他地方的建议使用JQuery,但这也没有效果:

<script type="text/javascript">
$("[id$='btnDelegate']").click(function () {
    if (!$("[id$='tblLocations']").is(':visible')) {
        ValidatorEnable($("[id$='rfvDdlLocations']")[0], false);
    }
    //ValidationSummaryOnSubmit("LoginUserValidationGroup");
    if (Page_ClientValidate("LocationValidation")) {
        alert('it is valid');
        return true;
    }
    else {
        alert('Not valid');
        return false;
    }
});

$(“[id$='btnDelegate']”)。单击(函数(){
如果(!$(“[id$='tblLocations']”)是(“:可见”){
ValidatorEnable($(“[id$='rfvDdlLocations']”[0],false);
}
//验证摘要提交(“LoginUserValidationGroup”);
如果(第页客户验证(“位置验证”)){
警报(“它是有效的”);
返回true;
}
否则{
警报(“无效”);
返回false;
}
});

在这种情况下,您应该使用customvalidator,如下所示

<asp:CustomValidator ID="cvDdlLocations" runat="server" ControlToValidate="ddlLocations" ValidationGroup="LocationValidation"  ErrorMessage="Please select a Location" OnServerValidate="cvDdlLocations_ServerValidate" ClientValidationFunction="validateLocation" />

我希望这有帮助

当我们可以简单地使用$(“#btnDelegate”)时,是否有任何理由使用$(“[id$='btnDelegate']”)选择元素?还可以通过将if(!$(“[id$='tballocations']”)is(':visible')替换为if(!$(“[id$='tballocations']”)is('visible'))来检查它。注:之前没有“:”visible@user2181397谢谢你的建议,但他们不会改变代码行为。谢谢你的回答
<asp:CustomValidator ID="cvDdlLocations" runat="server" ControlToValidate="ddlLocations" ValidationGroup="LocationValidation"  ErrorMessage="Please select a Location" OnServerValidate="cvDdlLocations_ServerValidate" ClientValidationFunction="validateLocation" />
function validateLocation(s, args) {
    if($('#'<%= Radio.ClientID %>).is(':checked')){
        args.IsValid = true;
    }
    else {
        args.IsValid = $('#<%= ddlLocations.ClientID%>').val() != "0";
    }
}
protected void cvPrice2Edit_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = true;
    if(!Radio.Checked) {
        args.IsValid = ddlLocations.SelectedValue != "0";
    }
}