在Jquery中选中/取消选中复选框

时间:2011-12-16 09:21:53

标签: jquery

这是我的.aspx页面,我正在使用JQuery 根据选中的复选框并取消选中,我应该进行div显示并隐藏 我在这里,当我显示div标签时,我甚至重置了下拉值

但是当我选中/取消选中复选框时,似乎没有发生任何事情

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <%-- <script type="text/javascript">
    <script type="text/javascript" src="JScript.js"></script>--%>

    <script src="jquery-1.6.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">
    $(document).ready(function() 
    {
    if ($("#CheckBox1").is(':checked')) 
    { 
     $('#divControlGroup').css("display", "block"); 
     $("#ddlcounty option:first").attr("selected", true);

    } 
    else 
    { 
    $('#divControlGroup').css("display", "none"); 

     } 
    })
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <table>
        <tr>
            <td>
                <asp:CheckBox ID="CheckBox1" runat="server" Checked="false" />
            </td>
            <td>
                <div id="divControlGroup" runat="server">
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    <asp:DropDownList ID="ddlcounty" runat="server">
                        <asp:ListItem Value="0">Select</asp:ListItem>
                        <asp:ListItem Value="1">India</asp:ListItem>
                        <asp:ListItem Value="2">US</asp:ListItem>
                        <asp:ListItem Value="3">UK</asp:ListItem>
                    </asp:DropDownList>
                </div>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
请告诉我我在哪里,任何帮助都会很棒

由于

最后解决问题

<script type="text/javascript">
    $(document).ready(function() 
    {
     $('#<%= CheckBox1.ClientID %>').change(function() 
    {    
     if($(this).is(':checked')) 
     {       
      $("#divControlGroup").css("display", "block");   
      $("#ddlcounty option:first").attr("selected", true); 
      } 
     else 
        { 
    $("#divControlGroup").css("display", "none"); 
     } 
        })
        });
    </script>

3 个答案:

答案 0 :(得分:2)

您当前的代码仅在加载页面时执行一次。您似乎想要绑定到复选框的change事件:

$('#CheckBox1').change(function() {

   if($(this).is(':checked')) {

      ...

   }

});

<强>更新

我刚刚注意到你正在使用.NET控件。如果上述代码无法解决您的问题,则问题可能是呈现的 ID与您为控件提供的ID不同。在浏览器中,选择查看源,以查看ID 真正的内容。

如果您使用的是.NET 4,则可以在复选框上设置ClientIDMode="Static",以确保呈现的控件的ID确实为CheckBox1

请参阅ClientIDMode

如果您使用的.NET版本低于4,则必须将CheckBox1.ClientID传递给JavaScript。

类似的东西:

$('#<%= CheckBox1.ClientID %>').change(function() {

   if($(this).is(':checked')) {

      ...

   }

});

另一个选项,无论.NET版本如何,都可以为包装器分配ID:

<td id="my-checkbox">
    <asp:CheckBox ID="CheckBox1" runat="server" Checked="false" />
</td>

$('#my-checkbox :checkbox').change(function() { ... });

答案 1 :(得分:1)

您的代码未附加到复选框的更改事件,它仅在“就绪”时执行,这意味着它只在页面准备就绪时执行一次。

答案 2 :(得分:1)

你可以这样做。我假设这是你想要的。


$('#CheckBox1').change(function () {
   $('#divControlGroup').toggle('slow');
});