Javascript 如果选中复选框,则验证DropDownList

Javascript 如果选中复选框,则验证DropDownList,javascript,asp.net,Javascript,Asp.net,ASP.NET3.5WebForms。只有选中复选框时,我才尝试将验证器放在下拉列表中 这不管用。如果我在onclick事件中添加了一个警报,它确实会显示出来 <script language="javascript" type="text/javascript"> function setVal(sender) { var myVal = document.getElementById('<%=(DropDownList)CreateUserWizar

ASP.NET3.5WebForms。只有选中复选框时,我才尝试将验证器放在下拉列表中

这不管用。如果我在onclick事件中添加了一个警报,它确实会显示出来

<script language="javascript" type="text/javascript">
    function setVal(sender) {
        var myVal = document.getElementById('<%=(DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ddlSupplierCouncilArea")%>');
        ValidatorEnable(myVal, !sender.checked);
        ValidatorValidate(myVal)
    }  
</script>

<asp:CheckBox runat="server" ID="cbxIsSupplier" Text="I wish to register as a Supplier in the"
                                     OnClick="setVal(this)" />

<asp:DropDownList ID="ddlSupplierCouncilArea" runat="server">
                                    <asp:ListItem>[Please select]</asp:ListItem>
                                    <asp:ListItem Value="blah1">blah1</asp:ListItem>
                                    <asp:ListItem Value="Waimakariri">blah2</asp:ListItem>
                                </asp:DropDownList>
                                <div class="validators">
                                    <asp:RequiredFieldValidator ID="rfvCouncilArea" runat="server" InitialValue="[Please select]"
                                        ControlToValidate="ddlCollectorCouncilArea" ErrorMessage="Select a Council Area"
                                        Enabled="false" ToolTip="Select a council area" ValidationGroup="CreateUserWizard1">* required</asp:RequiredFieldValidator>
                                </div>

函数setVal(发送方){
var myVal=document.getElementById(“”);
ValidatorEnable(myVal,!sender.checked);
验证器验证(myVal)
}  
[请选择]
胡说八道
废话
*必需的

您可以使用Firefox的Firebug插件来调试javascript代码,这会让您的生活更轻松

无论如何,你可以像这样重写你的函数


函数setVal(发送方,drpClientID)
{
var myVal=document.getElementById(drpClientID);
ValidatorEnable(myVal,!sender.checked);
验证器验证(myVal)
}

在asp.net代码中,应该像这样构建onclick属性

添加(“onclick”,“setVal(this,“+ddlSupplierCouncilArea.ClientID+”)”;

另一个开发人员使用jquery为我解决了这个问题,这似乎是一个更好的选择。 function setVal(sender, drpClientID) { var myVal = document.getElementById(drpClientID); ValidatorEnable(myVal, !sender.checked); ValidatorValidate(myVal) } cbxIsSupplier.Attributes.Add("onclick", "setVal(this, '" + ddlSupplierCouncilArea.ClientID + "')");