jquery实现的简单复选树,checkboxtree

 

jquery的实现方式:

Html代码   
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <title>jquery treeview 的选中子目录,同时选中父目录,关联选择</title>  
  5. <meta http-equiv="content-type" content="text/html;charset=utf-8">  
  6. <meta name="generator" content="editplus" />  
  7. <meta name="author" content="" />  
  8. <meta name="keywords" content="" />  
  9. <meta name="description" content="" />  
  10. <link type="text/css" href="css/css.css" rel="stylesheet" />  
  11. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
  12. <script type="text/javascript">  
  13. //wirted by qq:190988779 at 2010-1-5 9:52:08   
  14. //可以配合jquery treeview使用效果很好。   
  15. $(document).ready(function(){   
  16. $(".content input[type='checkbox'][name='c']").click(function(){   
  17. //子目录   
  18. var c = $(this).parent().find("input");   
  19. var b = $(this).attr('checked');   
  20. c.each(function(){   
  21. $(this).attr('checked',b);   
  22. });   
  23. var m = $(this).parent().parent('ul').find('input');   
  24. var count = 0;   
  25. m.each(function(){   
  26. if($(this).attr('checked')){   
  27. count++;   
  28. }   
  29. });   
  30. //父目录   
  31. var p = $(this).parents('li');//父目录   
  32. p.each(function(){   
  33. var o = $(this).find('input');   
  34. if(count){   
  35. o[0].checked = true;   
  36. }else{   
  37. o[0].checked = !o[0].checked;   
  38. }   
  39. });   
  40. $(this).attr('checked',b);   
  41. });   
  42. });   
  43. </script>  
  44.   
  45. </head>  
  46. <body>  
  47. <div id="divMsg">&nbsp;</div>  
  48. <div class="content">  
  49. <h1>jquery treeview 的选中子目录,同时选中父目录,关联选择</h1>  
  50. <ul class="scrollBox">  
  51. <li><input type="checkbox" name="c" value=2 /><a href="#">2</a>  </li>  
  52. <li><input type="checkbox" name="c" value=3 /><a href="#">3</a>  
  53. <ul class="d">  
  54. <li><input type="checkbox" name="c" value=6 /><a href="#">6</a></li>  
  55. <li><input type="checkbox" name="c" value=5 /><a href="#">5</a>  
  56. <ul class="class100">  
  57. <li><input type="checkbox" name="c" value=111 /><a href="#">111</a></li>  
  58. <li><input type="checkbox" name="c" value=100 /><a href="#">100</a></li>  
  59. </ul>  
  60. </li>  
  61. </ul>  
  62. </li>  
  63. </ul>  
  64. <ul>  
  65. </ul>  
  66. </div>  
  67.   
  68. </body>  
  69. </html>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jquery treeview 的选中子目录,同时选中父目录,关联选择</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link type="text/css" href="css/css.css" rel="stylesheet" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
//wirted by qq:190988779 at 2010-1-5 9:52:08
//可以配合jquery treeview使用效果很好。
$(document).ready(function(){
$(".content input[type='checkbox'][name='c']").click(function(){
//子目录
var c = $(this).parent().find("input");
var b = $(this).attr('checked');
c.each(function(){
$(this).attr('checked',b);
});
var m = $(this).parent().parent('ul').find('input');
var count = 0;
m.each(function(){
if($(this).attr('checked')){
count++;
}
});
//父目录
var p = $(this).parents('li');//父目录
p.each(function(){
var o = $(this).find('input');
if(count){
o[0].checked = true;
}else{
o[0].checked = !o[0].checked;
}
});
$(this).attr('checked',b);
});
});
</script>

</head>
<body>
<div id="divMsg">&nbsp;</div>
<div class="content">
<h1>jquery treeview 的选中子目录,同时选中父目录,关联选择</h1>
<ul class="scrollBox">
<li><input type="checkbox" name="c" value=2 /><a href="#">2</a>  </li>
<li><input type="checkbox" name="c" value=3 /><a href="#">3</a>
<ul class="d">
<li><input type="checkbox" name="c" value=6 /><a href="#">6</a></li>
<li><input type="checkbox" name="c" value=5 /><a href="#">5</a>
<ul class="class100">
<li><input type="checkbox" name="c" value=111 /><a href="#">111</a></li>
<li><input type="checkbox" name="c" value=100 /><a href="#">100</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
</ul>
</div>

</body>
</html>
 
Jsp代码   
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"   pageEncoding="UTF-8"%>   
  2. <%@ taglib prefix="s" uri="/struts-tags"%>   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   
  4. <html>   
  5. <head>   
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
  7. <title>产品维度信息</title>   
  8. <% String path=request.getContextPath(); %>   
  9. <script language="javascript" src="<%=path%>/js/main.js"></script>   
  10. <script src="<%=path%>/js/dialog.js" type="text/javascript" charset="utf-8"></script>   
  11. <script type="text/javascript" src="<%=path%>/js/checkboxtree/jquery1.4.2.min.js"></script>   
  12.         <script type="text/javascript" src="<%=path%>/js/checkboxtree/jquery-ui1.8.0.min.js"></script>   
  13.         <link rel="stylesheet" type="text/css" href="<%=path%>/js/checkboxtree/demo.css">   
  14.         <link rel="stylesheet" type="text/css" href="<%=path%>/js/checkboxtree/jquery.checkboxtree.css">   
  15.         <script type="text/javascript" src="<%=path%>/js/checkboxtree/jquery.checkboxtree.js"></script>   
  16. <style type="text/css">   
  17. body{margin:0px;padding:0px;font-size:12px;}   
  18. #main{ margin-left:auto; margin-right:auto;}   
  19. #wrapper{margin:0px auto;width:520px;margin:10px;height:auto;}   
  20. </style>   
  21. <script type="text/javascript">   
  22. var closeFun = function(){   
  23.     parent.dhtmlwindow.closeDialog({   
  24.         success:true,returnValue:''  
  25.     });   
  26. };   
  27. function submints() {   
  28.     theForm.submit();   
  29.     //window.location.target="mainFrame"  
  30.     closeFun();   
  31. }   
  32. function goback(){   
  33.     parent.dhtmlwindow.closeDialog({   
  34.         success:false,returnValue:''  
  35.     });   
  36.     }      
  37. function select(sobj){   
  38.     $.ajax({   
  39.            type: "POST",   
  40.            url: "<%=path%>/cotton/productExtSelect.action",   
  41.            data: "stringArg="+$(sobj).val(),   
  42.            dataType:"json",   
  43.            success: function(data){   
  44.                $("input[name='list']").each(function(){   
  45.                    $(this).removeAttr("checked");   
  46.                    });   
  47.                $.each(data,function(idx,item){    
  48.                    $("input[name='list']").each(function(){   
  49.                         if($(this).val()==item.codeIdAndCodeName)   
  50.                         {   
  51.                              $(this).attr("checked",'true');   
  52.                         }   
  53.                     });   
  54.                    });    
  55.            }   
  56.         });    
  57. }   
  58. $(document).ready(function() {   
  59.     $('#tree').checkboxTree();   
  60. });   
  61. </script>   
  62. </head>   
  63.   
  64. <body>   
  65.  <div id="wrapper">   
  66.    <div id="main">   
  67.        <form action="<%=path%>/cotton/productExtSave.action" method="post" name="theForm">   
  68.      <div id="main_center">   
  69.      <table align="center" >   
  70.                  <tr>   
  71.               <td height="30" colspan="4" align="center">请 选 择 产 品 及 维 度 信 息</td>   
  72.             </tr>   
  73.             <tr>   
  74.               <td width="100" height="30" align="center">产品:</td>   
  75.               <td width="180" height="30"><div align="left"><strong>   
  76.                  <s:select name="stringArg" list="productCodeList" headerKey="" headerValue="请选择" listKey="productCode" listValue="productPyAndName" theme="simple" οnchange="javascript:select(this)"></s:select>   
  77.               </strong></div></td>   
  78.             </tr>   
  79.             <tr>   
  80.               <td width="46" align="center" valign="middle">维度:</td>   
  81.               <td colspan="3" align="left">   
  82.                 <ul id="tree">   
  83.                         <s:iterator value="codeList" status="index" var="ccode">   
  84.                             <li>   
  85.                                 <input type="checkbox" name="list" value="<s:property value="codeIdAndCodeName"/>"/><s:property value="codeName"/>   
  86.                                 <s:if test="childList!=null">   
  87.                                     <ul>   
  88.                                         <s:iterator value="childList" status="index2">   
  89.                                             <li>   
  90.                                                 <input type="checkbox" name="list" value="<s:property value="codeIdAndCodeName"/>"/><s:property value="codeName"/>   
  91.                                             </li>    
  92.                                         </s:iterator>   
  93.                                     </ul>   
  94.                                 </s:if>   
  95.                             </li>   
  96.                         </s:iterator>   
  97.                     </ul>   
  98.               </td>   
  99.             </tr>   
  100.          </table>   
  101.   
  102.       </div>   
  103.       <div class="btn_area" style="text-align:center;   
  104.                 margin-bottom:10px;">   
  105.                     <input type="button" οnclick="submints();" class="btn_bg3" name="btn_update" id="update" value="提交" />   
  106.                     <input type="button" οnclick="goback();" class="btn_bg3" name="btn_close" id="update" value="取消" />   
  107.                 </div>   
  108.              </form>             
  109.    </div>   
  110.  </div>   
  111. </body>   
  112. </html>  

 

   服务端代码:

 

Java代码   
  1. public void productExtSelect(){   
  2.     try {   
  3.         if(stringArg!=null){   
  4.             cproductExtExample.clear();   
  5.             cproductExtExample.createCriteria().andProductCodeEqualTo(stringArg);   
  6.             List<ProductExt> peList = cproductExtDao.selectByExample(cproductExtExample);   
  7.             JSONArray json = JSONArray.fromObject(peList);   
  8.             HttpServletResponse response = ServletActionContext.getResponse();   
  9.             response.setContentType("application/json;charset=UTF-8");   
  10.             response.setCharacterEncoding("utf-8");   
  11.             response.setHeader("Charset""utf-8");   
  12.             response.setHeader("Cache-Control""no-cache");   
  13.             response.getWriter().println(json.toString());   
  14.         }   
  15.     } catch (Exception e) {   
  16.         e.printStackTrace();   
  17.     }   
  18. }  

 

打包的例子在我的资源里:checkboxtree-0.3.1.rar

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值