Java checkbox实现跨页多选
最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的。不过经过我的努力,终于做出来了。
JSP页面:
1,定义三个Hidden变量:
<INPUT type="hidden" name="all_selected"> <INPUT type="hidden" name="now_selected"> <INPUT type="hidden" name="no_selected">
// 获取checkbox信息,选中,未选中,当前选中 function getCheckBoxInformation() { var checkboxes = document.getElementsByName("checkbox"); var checkedStr = ""; var uncheckedStr = ""; var url = ""; for(var i = 0; i < checkboxes.length; i++) { var checkbox = checkboxes[i]; if(checkbox.checked) { checkedStr = checkedStr + "," + checkbox.value; }else { uncheckedStr = uncheckedStr + "," + checkbox.value; } } document.form1.now_selected.value = checkedStr; document.form1.no_selected.value = uncheckedStr; } // 页面onload的时候计算当前页被选中项,并在页面表示 function initPage() { var all_selected = document.form1.all_selected.value; if(all_selected != "" && all_selected!= null) { var arrall_select = all_selected.split(","); if(arrall_select.length > 0) { for(var k = 0; k < arrall_select.length; k++) { for(var i = 0; i < document.form1.checkbox.length; i++) { if(document.form1.checkbox[i].value == arrall_select[k]) { document.form1.checkbox[i].checked = true; } } } } } } public String doubleSpread(String all_select, String now_selected,String no_selected) {// 获取当前选中的项目if (now_selected != "" && now_selected != null) {String[] all_now_select = now_selected.split(",");// 将当前选中项目加入列表for (int i = 1; i < all_now_select.length; i++) {String strBoxSelected = all_now_select[i];String strSearchWith = strBoxSelected + ",";if (all_select.indexOf(strSearchWith) == -1) {all_select = all_select + strSearchWith;}}}String[] all_select_str = all_select.split(",");int[] all_select_int = new int[all_select_str.length];for (int i = 0; i < all_select_str.length; i++) {if (all_select_str[i] != "") {int j = Integer.parseInt(all_select_str[i]);all_select_int[i] = j;}}// 获取当前未选中项目if (no_selected != "" && no_selected != null) {String[] all_now_no_select = no_selected.split(",");// 将当前未选中项目从列表中删除for (int i = 1; i < all_now_no_select.length; i++) {int all_now_no_select_value = Integer.parseInt(all_now_no_select[i]);for (int k = 0; k < all_select_int.length; k++) {if (all_select_int[k] == all_now_no_select_value) {all_select = all_select.replaceAll(String.valueOf(all_now_no_select_value)+ ",", "");}}}}return all_select;}}public String doubleSpread(String all_select, String now_selected,String no_selected) {// 获取当前选中的项目if (now_selected != "" && now_selected != null) {String[] all_now_select = now_selected.split(",");// 将当前选中项目加入列表for (int i = 1; i < all_now_select.length; i++) {String strBoxSelected = all_now_select[i];String strSearchWith = strBoxSelected + ",";if (all_select.indexOf(strSearchWith) == -1) {all_select = all_select + strSearchWith;}}}if (all_select != "" && all_select != null) {String[] all_select_str = all_select.split(",");// 获取当前未选中项目if (no_selected != "" && no_selected != null) {String[] all_now_no_select = no_selected.split(",");// 将当前未选中项目从列表中删除for (int i = 1; i < all_now_no_select.length; i++) {for (int k = 0; k < all_select_str.length-1; k++) {if (all_select_str[k].equals(all_now_no_select[i])) {all_select = all_select.replaceFirst(all_now_no_select[i]+ ",", "");}}}}}return all_select;}public String doubleSpread(String all_select, String now_selected, String no_selected) {//获取当前选中的项目加入alList al = new ArrayList();if(all_select != "" && all_select != null){String[] all_select_str = all_select.split(",");for(int a=0;a<all_select_str.length;a++){al.add(all_select_str[a]);}}//将当前选中项目加入列表if (now_selected != "" && now_selected != null) {String[] all_now_select = now_selected.split(",");for (int i = 1; i < all_now_select.length; i++) {if (!al.contains(all_now_select[i])) {al.add(all_now_select[i]);}}}//将当前未选中项目从列表中删除if (no_selected != "" && no_selected != null) {String[] all_now_no_select = no_selected.split(",");for (int i = 1; i < all_now_no_select.length; i++) {if (al.contains(all_now_no_select[i])) {al.remove(all_now_no_select[i]);}}}all_select=al.toString().replaceAll(" +","");;all_select=all_select.substring(1,all_select.length()-1)+",";return all_select;}