实现前端table中checkbox全选功能,并将选中的数据发送到后端

一、需求

1. 点击这个checkbox按钮,会选中下面所用checkbox,当然在选中的情况下点击,会将下面所有选中的checkbox取消;

2. 当下面使用submit的提交按钮时,会将所有checkbox选中的数据提交给后端;

二、实现

1、实现全选checkbox功能

技术分析:其实这里可以使用js活着jquery两种方式,我暂时使用的是js中的dom实现的,具体代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>实现checkbox权限功能并将选中行的数据发送到后端</title>
</head>

<body>
    <script type="text/javascript">
    // 选择状态,开始默认的是没有选中
     var selectState = false;
      // 全选或者全取消
     function AllCheck(thisform){
        for (var i = 0; i < thisform.elements.length; i++){
            // 提取控件
            var checkbox = thisform.elements[i];
            // 修改每个checkbox的状态
            checkbox.checked = !selectState;
        }
        selectState = !selectState;
      }
    </script>

     <form>
         <table border="1px" id="test">
             <thead>
                 <tr>
                     <th>id</th>
                     <th>name</th>
                     <th>age</th>
                     <th>isselected<input type="checkbox" name="cbtest" onclick="AllCheck(this.form)"></th>
                 </tr>
             </thead>
             <tbody>
                 <tr>
                     <td>1</td>
                     <td>zy</td>
                     <td>18</td>
                     <td><input type="checkbox" name="cbtest"></td>
                 </tr>
                 <tr>
                     <td>2</td>
                     <td>junjun</td>
                     <td>18</td>
                     <td><input type="checkbox" name="cbtest"></td>
                 </tr>
             </tbody>
         </table>
     </form>

</body>
</html>

2、实现获取checkbox选中行的指定列的信息

<!DOCTYPE html>
<html>
<head>
    <title>实现checkbox权限功能并将选中行的数据发送到后端</title>
</head>

<body>
    <script type="text/javascript">
        // 选择状态,开始默认的是没有选中
         var selectState = false;
          // 全选或者全取消
         function AllCheck(thisform){
            for (var i = 0; i < thisform.elements.length; i++){
                // 提取控件
                var checkbox = thisform.elements[i];
                // 修改每个checkbox的状态
                checkbox.checked = !selectState;
            }
            selectState = !selectState;
          }

          //通过dom判断该列的checkbox是否被选中,并获取该选中行的数据
          function sendDataTo(id){
              //获取该table中所有的input元素,是一个数组
            var inputs = document.getElementById(id).getElementsByTagName("input");
            var allData = new Array();
            var num = 0;
            for(var i = 0; i < inputs.length; i++){
                // 判断该input中是否为checkbox
                if(inputs[i].type == "checkbox" ){
                    //判断该checkbox是否被选中,如果被选中获取table行中的指定元素
                    if(inputs[i].checked){
                        var checkRow = inputs[i];
                        //tr对应table的行
                        var tr = checkRow.parentNode.parentNode;
                        //tds对应每一行中的对应的每一列
                        var tds = tr.cells;              // 组织要发送的数据
                        var temp = new Array();
                        temp[0] = tds[0].innerHTML;
                        temp[1] = tds[2].getElementsByTagName("input")[0].value;
                        allData[num] = temp;
                        num++;
                    }
                }
            };

            //将数据使用ajax发送到后端,调用后端接口
            $.ajax({
                type:"POST",
                //后端接口
                url:"/handle",
                contentType:"application/json",
                dataType:"json",
                //数据
                data: JSON.stringify({shopInfo : allData}),
                success:function(){
                    alert("ok");
                },
                error: function(){
                    alert("error");
                }
            });
        }

    </script>

     <form>
         <table border="1px" id="test">
             <thead>
                 <tr>
                     <th>id</th>
                     <th>name</th>
                     <th>age</th>
                     <th>isselected<input type="checkbox" name="cbtest" onclick="AllCheck(this.form)"></th>
                 </tr>
             </thead>
             <tbody>
                 <tr>
                     <td>1</td>
                     <td>zy</td>
                     <td>18</td>
                     <td><input type="checkbox" name="cbtest"></td>
                 </tr>
                 <tr>
                     <td>2</td>
                     <td>junjun</td>
                     <td>18</td>
                     <td><input type="checkbox" name="cbtest"></td>
                 </tr>
             </tbody>
         </table>
         <input type="submit" name="sbtest" onclick="sendDataTo(‘test‘)">
     </form>

</body>
</html>
时间: 2024-10-17 15:38:49

实现前端table中checkbox全选功能,并将选中的数据发送到后端的相关文章

vue2.0在table中实现全选和反选

其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的,js是小颖自己写哒,欢迎大家吐槽和点赞,嘻嘻 慕课网demo的  git 地址:ShoppingCart 页面效果: 具体怎么实现的呢? 因为上篇文章:使用localstorage来存储页面信息 中已经有写项目是怎么创建的所以小颖在这里就不重复了,其实只是在上篇文章的基础上稍微做了改动: App.v

js初学—实现checkbox全选功能

布局如下: <p ><input type="checkbox" id="che1"/>全选</p><div id="div1"> <input type="checkbox" /><br /> <input type="checkbox" /><br /> <input type="checkb

jquery中checkbox全选失效的解决方法

这篇文章主要介绍了jquery中checkbox全选失效的解决方法,需要的朋友可以参考下 如果你使用jQuery 1.6 ,代码if ( $(elem).attr(“checked”) ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中.它只是用来存储默认或选中属性的初始值.为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop(

实现table中checkbox复选框、以及判断checked是否被选中、js操作checkedbox选中

上图是实现效果. 下面贴代码 表的第一行也就是<th>中的代码,onclick事件是实现全选或者全不选效果. <th> <input id="allboxs" onclick="allcheck()" type="checkbox"/> </th> td中的代码 <td> <input name="boxs" type="checkbox"/

关于checkbox全选功能的实现

要进行操作的DOM元素: <input type="checkbox" id="cbAll" value="all">全选 爱好: <input type="checkbox" name="cbHobby" value="song">唱歌 <input type="checkbox" name="cbHobby" va

vue中实现全选功能

<!DOCTYPE html><html><head><meta charset="utf-8"><title>Vue 测试实例 - 菜鸟教程(runoob.com)</title><script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script></head><body>  

全选反选以及获取选中的数据

<!DOCTYPE HTML><html><head> <meta charset="utf-8"> <title>演示:jQuery实现的全选.反选和不选功能</title> <!--<link rel="stylesheet" type="text/css" href="../css/main.css"/>--> <sty

checkbox全选功能

$("#cb_classType_all").change(function () { if ($(this).is(":checked")) { $(".cb_classType").prop("checked", true); } else { $(".cb_classType").prop("checked",false); } }); 通过is(":checked&qu

checkbox全选功能js

$("#CheckAll").click(function() {     var checkFlag = $(this).prop("checked");     $("input:checkbox:enabled").each(function() {         $(this).prop("checked", checkFlag);     }); });