日期:2014-05-16  浏览次数:20818 次

jquery ajax 实现批量删除

js页面jquery代码:

    // JavaScript Document  
    $(document).ready(function() {  
        // 全选  
        $("#allChk").click(function() {  
            $("input[name='subChk']").prop("checked",this.checked);  
        });  
          
        // 单选  
        var subChk = $("input[name='subChk']")  
        subChk.click(function() {  
            $("#allChk").prop("checked", subChk.length == subChk.filter(":checked").length ? true:false);  
        });  
          
        /* 批量删除 */  
        $("#del_model").click(function() {  
            // 判断是否至少选择一项  
            var checkedNum = $("input[name='subChk']:checked").length;  
            if(checkedNum == 0) {  
                alert("请选择至少一项!");  
                return;  
            }  
              
            // 批量选择   
            if(confirm("确定要删除所选项目?")) {  
                var checkedList = new Array();  
                $("input[name='subChk']:checked").each(function() {  
                    checkedList.push($(this).val());  
                });  
      
                $.ajax({  
                    type: "POST",  
                    url: "deletemore",  
                    data: {'delitems':checkedList.toString()},
                    success: function(result) {  
                        $("[name ='subChk']:checkbox").attr("checked", false);
                        window.location.reload();  
                    }  
                });  
            }             
        });  
    });  

  页面元素:
  <a href="#" id="del_model"><span>删除用户</span>
  <th class="tal"><input type="checkbox" id="allChk"/>全选</th>
  <td><input type="checkbox" name="subChk" value="${user.id}"/></td>

回调函数,在请求完成后需要进行的操作:此处是把选中的checkbox去掉(因为是用到了freemarker的list循环,去掉是数据后checkbox序号变化,还有有相应未知的checkbox被选中,需要去掉)。

              success: function(result) {  
                     $("[name = 'items']:checkbox").attr("checked", false);
                     window.location.reload();  
              }  

java后台代码:

@RequestMapping(value = "/deletemore", method = RequestMethod.POST)
    public String deleteMore(HttpServletRequest request, HttpServletResponse response) {
        String items = request.getParameter("delitems");
        String[] item = items.split(",");
        for (int i = 0; i < item.length; i++) {
            userService.delete(Integer.parseInt(item[i]));
        }
        return "redirect:list";
    }

效果图: