Java でチェックボックスを使用してページ間の複数選択を実装する方法

高洛峰
リリース: 2017-01-23 16:32:11
オリジナル
1375 人が閲覧しました

最近、チェックボックスのクロスページ複数選択という機能を実装したいと思っています。ネットで調べてみると、情報が非常に少なく、ほとんどが不完全であることがわかりました。しかし、努力の末、ついに成功しました。

JSP ページ:

1. 3 つの隠し変数を定義します:

<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 を呼び出します。 () Method.

ページがめくられるたびに、バックグラウンドでメソッド

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 でチェックボックスにクロスページの複数選択を実装するためにエディターが紹介した方法です。ご質問があれば、メッセージを残してください。エディターが返信します。間に合ったあなた。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

Java でチェックボックスを使用してページ間の複数選択を実装する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート