您的位置:首页 > Web前端 > JavaScript

json中的复选框并传值到后台的批量删除

2018-01-17 08:49 211 查看
简单记录一下,开发中遇到在页面list 中要完成批量删除操作,当页面是后台的json 字符串返回得到的list列表时,首先页面上的json显示如下:

      checkbox:true,
               idField:"sysno",

                      columns: [{

                    field: "name",

                        title: "姓名",

                        width: "15%",

                        styleCls: "f-tac"

                    }, {

                    field: "sex",

                        title: "性别",

                        width: "15%",

                        styleCls: "f-tac",

                        formatter: function (value, row) {

                        if(value == "1"){

                        return "男";

                        }else{

                        return "女";

                        }

                        }

                    },{

                    field: "jobannex",

                        title: "港府工种",

                        width: "20%",

                        styleCls: "f-tac",

                    },]

这里的 checkbox:true时,页面上的list列表就有复选框了。

这里获取复选框后,如何得到勾选记录的id呢?

上述使用的json 中有一个属性是: idField:"sysno", 在勾选记录时,就绑定了对应记录的id。

这里需要在页面上写一个js 方法,获取勾选的id ,可能是一个或者多个。方法是参考网上的:

function selected(){

var perTag = document.getElementsByName("row_id");             

              var selectTag = "";

              for(var i = 0;i < perTag.length;i++){

              if(perTag[i].checked){

              selectTag += perTag[i].value + ",";

              }

              } 

           

              if(perTag == "" || perTag.length == 0){

              layer.alert("请至少选择一个人!");

              }

              selectTag = selectTag.substring(0,selectTag.length-1);

window.location.href ="url ?selectTag "+selectTag ;

}

这里的document.getElementsByName() 是获取input标签的对应name 属性,最终获得一个勾选记录的数组。

我本地这里代码是这样的:html += "<td class=\"f-tac\"><input type=\"checkbox\" name=\"row_id\" value=\"" + obj[opts.idField] + "\"/></td>";

而perTag[i].value则是获取勾选记录的id。

这样就通过url 可以将勾选记录id 字符串 传到后台的对应的方法中。

后台方法中,例如 xxxAction 后,就可以将id的字符串解析成数组。

StringBuffer delSql = new StringBuffer();

String[] arr = selectTag .split(",");

for(int i = 0 ; i < arr.length;i++ ){

xxxService.del(arr[i]);

}

这样就可以粗略完成一个批量删除功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: