天 黑 了 2021-09-30 21:34 采纳率: 20%
浏览 45
已结题

分页怎么保留checkbox选中的值


<script type="text/javascript">
        checkedIds="";//翻页保存选中的id

        function changeIds(){
            var oneches=document.getElementsByClassName("dfinput1");
            console.log(oneches)
            for(var i=0;i<oneches.length;i++){
                if(oneches[i].checked==true){
                    //避免重复累计id (不含该id时进行累加)
                    if(checkedIds.indexOf(oneches[i].value)==-1){
                        checkedIds=checkedIds+oneches[i].value+",";
                    }
                }
                if(oneches[i].checked==false){
                    //取消复选框时 含有该id时将id从全局变量中去除
                    if(checkedIds.indexOf(oneches[i].value)!=-1){
                        checkedIds=checkedIds.replace((oneches[i].value+","),"");
                    }
                }
            }
            console.log(checkedIds)
        }

        function getChecked(){
            var oneches=document.getElementsByClassName("dfinput1");
            for(var i=0;i<oneches.length;i++){
                //全局变量中含有id,则该复选框选中
                if(checkedIds.indexOf(oneches[i].value)!=-1){
                    oneches[i].checked=true;
                }
            }
        }

    </script>

<thead>
                <tr>
                    <th>课程编号</th>
                    <th>课程名称</th>
                    <th><input type="checkbox" class="dfinput-all">全选</th>
                </tr>
                </thead>
                <tbody>
                <s:iterator value="pageResult1.data">
                    <tr>
                        <td>${curriculumId}</td>
                        <td>${courseName}</td>
                        <td><input name="curriculumId" id="curriculumId_${curriculumId}" type="checkbox" class="dfinput1" value="${curriculumId}" onclick="changeIds()"></td>
                    </tr>
                </s:iterator>
                </tbody>


<div class="pagin">
        <div class="message"><i class="blue">${pageResult1.total}</i>条记录     <i class="blue">${pageResult1.totalPage}</i>页,     当前显示第&nbsp;<i class="blue">${pageResult1.page}</i></div>
        <ul class="paginList">
            <c:choose>
                <c:when test="${pageResult1.isFirst==true}"><li class="paginItem current"><a href="javascript:;">首页</a></li></c:when>
                <c:otherwise>
                    <li class="paginItem"><a href="javascript:first()" target="rightFrame" onclick="getChecked()">首页&nbsp;</a></li>
                </c:otherwise>
            </c:choose>
            <c:choose>
                <c:when test="${pageResult1.isFirst==true}"><li class="paginItem current"><a href="javascript:;">上一页</a></li></c:when>
                <c:otherwise>
                    <li class="paginItem"><a href="javascript:previous()" target="rightFrame" onclick="getChecked()">上一页&nbsp;</a></li>
                </c:otherwise>
            </c:choose>
            <c:choose>
                <c:when test="${pageResult1.hasNext==true}">
                    <li class="paginItem"><a href="javascript:next()" target="rightFrame" onclick="getChecked()">下一页&nbsp;</a></li>
                </c:when>
                <c:otherwise><li class="paginItem current"><a href="javascript:;">下一页</a></li></c:otherwise>
            </c:choose>
            <c:choose>
                <c:when test="${pageResult1.isLast==true}"><li class="paginItem current"><a href="javascript:;">尾页</a></li></c:when>
                <c:otherwise>
                    <li class="paginItem"><a href="javascript:last()" target="rightFrame" onclick="getChecked()">尾页&nbsp;</a></li>
                </c:otherwise>
            </c:choose>
            <li class="paginItem-page">
                跳转到:&nbsp;
                <input name="textfield" type="text" size="4" class="page-input" id="textfield" onchange="change()" onclick="getChecked()"/>&nbsp;<input  type="hidden" id="totalPage" value="${pageResult1.totalPage}"/>
            </li>
        </ul>

哪里出了问题,第一页勾选,到了第二页,第一页的值就没了,怎么解决,帮帮忙吧,十分感谢

  • 写回答

1条回答 默认 最新

  • weixin_42346558 2021-10-01 23:03
    关注

    设计上checkedIds应该采用数组的,不然如果字符串是‘11’,然后你选择了ID为1,那你的indexOf判断结果不是就错了?然后并不应该每次都从页面获取选中的id然后复制给到checkedIds,而是每个checkbox都有自己的事件,在事件处理checkedIds

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 9月30日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来