jquery 权限控制菜单

要实现的效果:

1、父节点选中,则下面的子节点全选中

2、父节点不选中,则下面的子节点全不选中

3、子节点只要选中了一个,则父节点选中

4、子节点全不选中,则父亲节点不选中

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'quanxian.jsp' starting page</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">

	<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
	<script type="text/javascript">

		function selectAll(idStart){
			var x = $("input[id^='"+idStart+"']");
			x.each(function(index,domEle){
				$(this).prop("checked",true);
			});

		}

		function unSelectAllBox(idStart){
			var x = $("input[id^='"+idStart+"']");
			x.each(function(index,domEle){
				$(this).removeProp("checked");
			});
		}

		function selectFather(id){
			$("#"+id).prop("checked", "checked");
		}

		function UnSelectFather(id){
			$("#"+id).removeProp("checked");
		}

		//判断还有没被选中的checkedbox
		function isExistSelect(idStart){
			var flag = false;
			var $arrayEle=$("input[id^='"+idStart+"'][id!='"+idStart+"_"+idStart+"']");
			for (var i=0; i<$arrayEle.length; i++){
				if ($($arrayEle[i]).prop("checked")){
					flag=true;
				}
			}
			return flag;
		}

		function goSelect(id){
			var arrayVal=id.split("_");
				if (arrayVal[0] == arrayVal[1]){//parent dom
					if ($("#"+id).prop("checked")){
						selectAll(arrayVal[0]);
					}else{
						unSelectAllBox(arrayVal[0]);
					}
				}else{//child dom

					if ($("#" + id).prop("checked")) {
						selectFather(arrayVal[0] + "_" + arrayVal[0]);
					}
					else {
						if (!isExistSelect(arrayVal[0])){
							UnSelectFather(arrayVal[0] + "_" + arrayVal[0]);
						}
					}
				}
		}

	</script>
  </head>

  <body>

  	<fieldset>
  	<legend><input type="checkbox"  id="company_company" onclick="goSelect(this.id)" />客户管理</legend>
	    <div><input type="checkbox"  id="company_base"  onclick="goSelect(this.id)"/>客户管理1</div>
		<div><input type="checkbox"  id="company_linkman" onclick="goSelect(this.id)" />客户管理2</div>
		<div><input type="checkbox"  id="company_linkTouch"  onclick="goSelect(this.id)"/>客户管理3</div>
		<div><input type="checkbox"  id="company_rule"  onclick="goSelect(this.id)"/>客户管理4</div>	

	</fieldset>

	<br/>
	<fieldset>
  	<legend><input type="checkbox"  id="employee_employee" onclick="goSelect(this.id)" />员工管理</legend>
	    <div><input type="checkbox"  id="employee_base"  onclick="goSelect(this.id)"/>员工管理1</div>
		<div><input type="checkbox"  id="employee_linkman" onclick="goSelect(this.id)" />员工管理2</div>
		<div><input type="checkbox"  id="employee_linkTouch"  onclick="goSelect(this.id)"/>员工管理3</div>
		<div><input type="checkbox"  id="employee_rule"  onclick="goSelect(this.id)"/>员工管理4</div>	

	</fieldset>
  </body>
</html>

note:本例中获取节点属性用的是prop()方法,用attr()不行。,jquery 1.6版本就对这两个方法进行了改变,attribute 表示从文档中获取DOM状态信息,而properties 表示元素的动态状态信息,比如说复选框的使用。

jquery 权限控制菜单

时间: 2024-10-07 18:01:55

jquery 权限控制菜单的相关文章

系统权限控制——菜单级别的权限控制方案

系统如果有许多用户,有时候需要针对不同用户进行菜单级别的权限控制. 下面的数据库设计实现了菜单级别的控制,可以作为一个参考: 其中读取页面时,页面中的action从Menu表中读取,而在powerofaction表中存储权限Power表与Aciton的关系. 系统权限控制--菜单级别的权限控制方案

浅谈Yii-admin的权限控制

说到CMS,最需要有的东西就是权限控制,特别是一些复杂的场景,多用户,多角色,多部门,子父级查看等等.最近在开发一个线下销售的东东,这个系统分为管理员端,省代端,客户端,门店端,销售端, 部门端,部门老大下面分子部门等等,恶心的需求.我们这个项目使用yii框架开发,yii在php届还是比较流行的,虽然说laravel现在横行,但是一些部门一些团队还是采用了yii框架,比如我们. 我是刚接触yii这个框架,开始的时候对这种面向组件的框架甚是别扭.当时打算自己写权限的,自己创建权限表,关联表等,但是

基于Vue实现后台系统权限控制

原文地址:http://refined-x.com/2017/08/29/基于Vue实现后台系统权限控制/,转载请注明出处. 用Vue/React这类双向绑定框架做后台系统再适合不过,后台系统相比普通前端项目除了数据交互更频繁以外,还有一个特别的需求就是对用户的权限控制,那么如何在一个Vue应用中实现权限控制呢?下面是我的一点经验. 权限控制是什么 在权限的世界里服务端提供的一切都是资源,资源可以由请求方法+请求地址来描述,权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配

django web 自定义通用权限控制

需求:web系统有包含以下5个url,分别对于不同资源: 1.stu/add_stu/ 2.stu/upload_homework/ 3.stu/query_homework/ 4.stu/add_record/ -------------------------------------------------------------------------------------------------------- 学生可以访问:2,3 老师可以访问:1,4 可以通过基于角色对用户权限进行控

3YAdmin-专注通用权限控制与表单的后台管理系统模板

3YAdmin基于React+Antd构建.GitHub搜索React+Antd+Admin出来的结果没有上百也有几十个,为什么还要写这个东西呢? 一个后台管理系统的核心我认为应该是权限控制,表单以及错误信息收集这三大块,前两个最为重要.而GitHub上的大多数项目关注点都不在这里,各种第三方组件堆砌在一起,看起来很炫酷,但是实用性没多大,改起来也麻烦(如果是vue,可以看我的另一个项目vue-quasar-admin). 有人可能会有疑问:权限控制,不同系统实现不一样,根本没法做到通用.权限控

可控制导航下拉方向的jQuery下拉菜单代码

效果:http://hovertree.com/texiao/nav/1/ 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>可控制导航下拉方向的jQuery下拉菜单代码 - 何问起</title> <base ta

项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 7. 基于treegrid实现菜单展示 2 常见的权限控制方式 2.1 url拦截实现权限控制 shiro基于过滤器实现的   2.2 注解方式实现权限控制 底层:代理技术     3 基于shiro的url拦截方式验权   <!-- 配置过滤器工厂 --> <bean id="

RABC权限控制(二级菜单实现)

目前大部分系统由于用户体验,基本上菜单不会做的很深,以二级菜单为例,做了一个简单的权限控制实现,可精确到按钮级别(基于django),下面具体看看实现 1.表结构的设计 无论开发什么都需要先梳理清楚需求,然后再考虑表结构,这里先来说说大致的表结构组成,注意,我的权限控制是通过url做的,所以控制的核心就在于控制url 表字段介绍设计如下: 权限表 url # 权限 title #权限的标题,左侧展示,代表的功能(因为不可能展示url吧) menu # 所属的一级菜单,外键关联一级菜单 paren

Jquery Easy-UI 树形菜单的运用

一.树形菜单的右键标签 期中增加同级机构.增加下属机构.修改.删除分别是调用了addNode(),del()等方法. <div id="menuTree" class="easyui-menu" style="width: 120px;"> <SecurityTag:Authorize ID="Authorize12" runat="server" FunctionID="fun