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";
}
效果圖: