需要选中所有或清除所有复选框

时间:2009-11-05 06:42:55

标签: c# jquery asp.net-3.5

请帮助我尝试为selectAll编写代码或使用Jquery清除所有代码。我有一个checkboxlist,id的值似乎不正确。 firebug中的ID显示值“<%= checkboxId.ClientID%>”

由于 SA

部分代码:

<a href="javascript:void(0);" onclick="selectClearAlltest('<%= checkboxId.ClientID %>', true)">Select All</a> |
<a href="javascript:void(0);" onclick="selectClearAlltest('<%= checkboxId.ClientID %>', false)">Clear All</a>
<asp:checkboxList id="checkboxId" runat="server" />

脚本:

    function selectClearAlltest(id, value) {
        var chks = $("#" + id + ":input");
        chks.attr("checked", value);
    }

3 个答案:

答案 0 :(得分:1)

你的选择器错了,它会#checkboxId:input。你应该添加另一个空间(你正在寻找后代),并且更好:

var chks = $("#" + id + " input:checkbox");

答案 1 :(得分:0)

添加类名会使事情变得更简单 e.g。

<asp:checkboxList id="checkboxId" runat="server" CssClass="whatever"/>

和jQuery代码:

function selectClearAlltest(value) {
       $(".whatever").attr("checked", value);
}

甚至更好地使用jQuery.toggle作为

$("#select_all_element_id").toggle(
  function () {
    $(".whatever").attr("checked", "checked");
  },
  function () {
    $(".whatever").removeAttr("checked");
  },
);

示例:

<html>
    <head>

    </head>
    <body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    <a id="toggle-select" href="#">select/deselect all</a>
    <hr/>
        <input type="checkbox" class='foo'>Click</input>
        <input type="checkbox" class='foo'>On</input>
        <input type="checkbox" class='foo'>The</input>
        <input type="checkbox" class='foo'>The</input>
        <input type="checkbox" class='foo'>Link</input>
        <input type="checkbox" class='foo'>Above</input>
        <input type="checkbox" class='foo'>To</input>
        <input type="checkbox" class='foo'>Change</input>
        <input type="checkbox" class='foo'>My</input>
        <input type="checkbox" class='foo'>Attributes</input>        

    <script>
        $(document).ready(function(){
            $("#toggle-select").toggle(              
              function () {
                $(".foo").attr("checked", "checked");
              },            
              function () {
                $(".foo").removeAttr("checked");
              }
            );
        });
    </script>
   </body>

答案 2 :(得分:0)

如果Firebug向您显示<%=%>,则表示服务器未正确解析/解释您的页面。

这些字符序列通常用于表示服务器处理的代码,而不是进入实际标记。例如,您是否尝试在“.html”文件中执行ASP代码?或者,......您是否尝试在基于PHP的服务器上执行ASP代码?

验证这一点的另一种方法是在页面上执行view source,看看是否实际生成了服务器生成的代码!

祝你好运!
-Mike