选择所有复选框分页帮助

时间:2009-07-14 07:07:42

标签: checkbox pagination

我目前有一个分页报告,每页显示10条记录。

在此报告中,我还为每条记录都有一个复选框列。基于此,

我希望合并“全部检查”功能,因此根据我的情况显示10条记录,当我按下“全部检查”复选框时,我想检查所有可见记录(一次10条)该页面(pageno = 3),删除这10条记录后,页面应重定向到同一页面(filename.php),页面编号相同(pageno = 3)。

www.example.com/filename.php?pageno=3

2 个答案:

答案 0 :(得分:1)

使用像jQuery这样的框架会让你的生活变得更轻松。假设以下是您的记录结构:

<table id="report">
    <tr><td> <input type="checkbox" id="tr1" /></td><td>..</td><td>...</td></tr>
    <tr><td> <input type="checkbox" id="tr2" /></td><td>..</td><td>...</td></tr>
    <tr><td> <input type="checkbox" id="tr3" /></td><td>..</td><td>...</td></tr>
    <tr><td> <input type="checkbox" id="tr4" /></td><td>..</td><td>...</td></tr>
    <tr><td> <input type="checkbox" id="tr5" /></td><td>..</td><td>...</td></tr>
</table>

<input type="checkbox" id="chkAll"/> Select All.

以下代码(使用jquery)将满足需要:

<script type="text/javascript">
    $(document).ready(function(){
        $("#chkAll").change(function(){
            if($("#chkAll").is(":checked")){
                $("#report tr td:first-child").find("input:checkbox")
                        .attr("checked","checked");
            }else{
                $("#report tr td:first-child").find("input:checkbox")
                       .attr("checked","");
            }
        });
    });
</script>

编辑: - 根据您的代码,尝试使用此代码替换 boxes_checkall 函数;

       function boxes_checkall(a,b)        {            var cbs = a.getElementsByTagName('input');

        for(var i=0;i<cbs.length;i++)
        {
           if(cbs[i].type.toLowerCase()=='checkbox')
           {
               cbs[i].checked = b==1;
           }
        }
   }
</script>

答案 1 :(得分:0)

这可以使用Javascript解决。 如何定义复选框的名称?

您可以执行for循环来更改此时显示的所有复选框的状态。

如果你正在使用像jQuery这样的javascript工具包/框架,这很容易。 例如,您可以将类.page- [NUM]提供给页面上的所有复选框,然后使用:

$(".page-[NUM]").each(function()
{
this.checked = checked_status;
}); 

或者如果您对页面上的每个复选框使用相同的名称,请尝试:

$("input[@name=thename]").each(function()
{
this.checked = checked_status;
}); 

其中“thename”将是该页面上复选框的名称。