Java中checkbox实现跨页多选的方法

最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的。不过经过我的努力,终于做出来了。

JSP页面:

1,定义三个Hidden变量:

<INPUT type="hidden" name="all_selected">
<INPUT type="hidden" name="now_selected">
<INPUT type="hidden" name="no_selected">  

2,javascript

// 获取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;
             }
           }
         }
       }
     }
    }  

每次翻页的时候调用getCheckBoxInformation()方法,页面加载的时候调用initPage()方法.

在后台,每次翻页时调用方法

public String doubleSpread(String all_select, String now_selected, String no_selected) {
    //获取当前选中的项目加入al
    List 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;
  } 

将此方法返回的all_select再传到JSP页面上并赋值给那个隐藏域,到此,功能就实现了。

以上所述是小编给大家介绍的Java中checkbox实现跨页多选的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php一次性删除前台checkbox多选内容的方法

    复制代码 代码如下: SQL:$SQL="delete from `doing` where id in ('1,2,3,4')"; 数据用逗号隔开. 表单: 复制代码 代码如下: <form action="?action=doing" method="post"> <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]&qu

  • Android checkbox的listView(多选,全选,反选)具体实现方法

    布局文件:[html]  复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?>  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="fill_parent"      android:layout_height=

  • CheckBoxList多选样式jquery、C#获取选择项

    复制代码 代码如下: .checkboxlist label { margin-right: 20px; } 复制代码 代码如下: var label; $("#ddlplatform input:checkbox:checked").each(function () { label += $(this).next().html(); }); 复制代码 代码如下: <asp:CheckBoxList ID="ddlplatform" runat="s

  • checkbox 多选框 联动实现代码

    父类 复制代码 代码如下: <input type="checkbox" name="father" forcheckboxgroup="groupname1"/> 子类 复制代码 代码如下: <input type="checkbox" name="son" group="groupname1"/> 实现代码 复制代码 代码如下: <script type

  • 用 Javascript 验证表单(form)中多选框(checkbox)值

    本文介绍了一个较为通用的获取 checkbox 值的方法,希望对新手有用. 复制代码 代码如下: <script type="text/javascript"> // 说明: 用 Javascript 验证表单(form)中多选框(checkbox)的值 // 作者: CodeBit function getCheckboxValue(checkbox) { if (!checkbox.length && checkbox.type.toLowerCase(

  • input:checkbox多选框实现单选效果跟radio一样

    最近遇到一个小小的问题,就是有时候我们使用单选radio的时候,会发现当我们选中一个之后,再也无法一个都不选了,即选中后没有取消的功能,此时便想到了功能强大的checkbox,但他是多选,怎么才能让他变成单选,效果跟radio一样呢,本菜鸟就自己写了个小程序,代码很简单,只有四行. 废话不多说,直接代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w

  • Java中checkbox实现跨页多选的方法

    最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的.不过经过我的努力,终于做出来了. JSP页面: 1,定义三个Hidden变量: <INPUT type="hidden" name="all_selected"> <INPUT type="hidden" name="now_selected"> <INPUT type="hidden&quo

  • easyui 中的datagrid跨页勾选问题的实现方法

    easyui的datagrid分页显示数据,如果有需求要求勾选多条数据且不再同一页中,easyui会保存在其他页选中的数据吗? 一开始在网上查阅有人说easyui中没有此方法,需要自己写,但其实至少在1.4版本后只要在datagrid中加入   idField:'id',给每条数据id属性,easyui就默认就会保留之前勾选的信息,如果没有id,才会出现换页后,之前勾选的信息没有的情况.所以说网络是个好东西,但你要有分辨的能力! 下面是部分代码: $weldingBomInstanceGrid=

  • 详解java 中Spring jsonp 跨域请求的实例

    详解java 中Spring jsonp 跨域请求的实例 jsonp介绍 JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSO

  • java 结合jQuery实现跨域名获取数据的方法

    一.什么是跨域? 由于浏览器出于安全的考虑,采取了同源策略的限制,使得jQuery无法直接跨域名互相操作对象或数据.例如:a.com 域名下的 a.html页面利用jQuery无法操作b.com 域名下b.html页面的对象或是数据, 并且默认情况下也不能操作test.a.com域名下的 test.html的 对象或是数据 .只要满足下面条件的jQuery都会视为跨域名: 1.主域相同,子域不同,如xxx.aaa.com和yyy.aaa.com 2.域名相同,端口不同,如xxx.aaa.com:

  • Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The valu

  • java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输,JavaMail是可选包,因此如果需要使用的话你需要首先从java官网上下载.目前最新版本是JavaMail1.5.0,下面我们来看看javamail发送带附件的邮件实例 mail.java 代码: 复制代码 代码如下: package mail;

  • java中利用反射调用另一类的private方法的简单实例

    我们知道,Java应用程序不能访问持久化类的private方法,但Hibernate没有这个限制,它能够访问各种级别的方法,如private, default, protected, public. Hibernate是如何实现该功能的呢?答案是利用JAVA的反射机制,如下: import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectDemo {

  • java中实现list或set转map的方法

    java中实现list或set转map的方法 在开发中我们有时需要将list或set转换为map(比如对象属性中的唯一键作为map的key,对象作为map的value),一般的想法就是new一个map,然后把list或set中的值一个个push到map中. 类似下面的代码: List<String> stringList = Lists.newArrayList("t1", "t2", "t3"); Map<String, St

  • Java中关于控制台读取数字或字符串的方法

    Java中,int a = System.in.read();此句读取的是一个字符,然后返回的是对应字符的ASCII, 例如,控制台输入123,只读取一个字符1,对应的ASCII为49,则输出49,输入abc则读取a,对应的ASCII是97,则输出97: Scanner sc = new Scanner(System.in) int n = sc.nextInt();从控制台读取一个数. String c = sc.next();//从控制台读取字符串 以上就是小编为大家带来的Java中关于控制

  • Java中SSM+Shiro系统登录验证码的实现方法

     先给大家展示下效果图: 1.验证码生成类: import java.util.Random; import java.awt.image.BufferedImage; import java.awt.Graphics; import java.awt.Font; import java.awt.Color; /** * 验证码生成器类,可生成数字.大写.小写字母及三者混合类型的验证码. 支持自定义验证码字符数量: 支持自定义验证码图片的大小: 支持自定义需排除的特殊字符: * 支持自定义干扰线

随机推荐