`
wj196
  • 浏览: 298407 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

两个选择框,左右互选添加

    博客分类:
  • java
 
阅读更多
触发事件的方法:编辑用户组成员

function editGroupUser(id) {
	$
			.ajax( {
				type : "POST",
				url : "/group/groupUserquery.json",
				dataType : "json",
				data : "id=" + id,
				success : function(data) {


					/**
					 * 这个组已经存在的成员
					 */
					var gxHtml = "<select name='myGroupUser'  border='1'  multiple  style='width:200px;height:285px;' >";
					$.each(data.alreadylinkUser, function(i, noCo) {
						gxHtml += "<option value=" + noCo.userId + ">"
								+ noCo.userName + "</option>";
					});
					gxHtml += "</select>";
					$("#myGroupUsers").html(gxHtml);

					/**
					 * 还没有分组的成员
					 */
					var wgxHtml = "<select name='noGroupUser'  border='1'  multiple  style='width:200px;height:285px; ' >";
					$.each(data.noLinkUser, function(i, noCo) {
						wgxHtml += "<option value=" + noCo.userId + ">"
								+ noCo.userName + "</option>";
					});
					wgxHtml += "</select>";
					$("#noGroupUsers").html(wgxHtml);
					
					$("#myGroupName").text(data.group.groupName);
					$("#myGroupId").val(data.group.id);
										
					$("#dialog_form_editGroupUser").dialog("open");

				},
				error : function(XMLHttpRequest, textStatus, errorThrown) {
					alert("错误状态:" + textStatus + "\n错误信息:" + errorThrown);
				}
			});

}


jsp代码:

<div id ="dialog_form_editGroupUser" style="display: none;">
<form>
<table>
        <tr>
			<td height="33" align="right" width="250"><b>用户组名称:</b></td>
			<td id="myGroupName"></td>
			<td  ><input id="myGroupId" type="hidden" value=""/></td>
		</tr>
</table>
<table border="0" width="100%">
	<thead border="1">
		<tr>
			<td  height="25" style="padding-left: 40px" align="left">没有分组成员:</td>
			<td width="70"></td>
			<td height="25" align="left" >此用户组已存在的成员:</td>
		</tr>
	</thead>
		
	<tbody border="1">
		<tr>
			<td id="noGroupUsers" style="padding-left: 40px"></td>
			<td width="100px" height="285px" align="center" valign="middle">
				<table>
				<tr>
					<td width="40" align="center"><input type="button" value=">>" onclick="addItem(this.form);"></td>
				</tr>
				<tr>
					<td width="40" align="center"><input type="button" value="<<" onclick="subItem(this.form)">
					</td>
				</tr>
				<tr>
					<td width="40" align="center"><input type="button" value="ALL>>"  onclick="addAllItem(this.form)">
					</td>
				</tr>
				<tr>
					<td width="40" align="center"><input type="button" value="<<ALL"  onclick="subAllItem(this.form)">
					</td>
				</tr>
				</table>
			</td>
		    <td id="myGroupUsers" width="40%"></td>
		</tr>
	</tbody>
   </table>	
   <table>
	<tr height="5"></tr>

	</table>
</form>
</div>



点击箭头触发事件,js代码:


/**
 * 添加到此用户组中
 * 
 * @param objForm
 */
function addItem(objForm) {
	var valueAry = new Array();
	var textAry = new Array();
	var groupElement = objForm.elements["myGroupId"];
	var leftElement = objForm.elements["noGroupUser"];
	var rightElement = objForm.elements["myGroupUser"];
	var count = 0;
	var i, j;
	for (i = leftElement.options.length-1; i >= 0 ; i--) {
		if (leftElement.options[i].selected) {
			valueAry[count] = leftElement.options[i].value;
			textAry[count] = leftElement.options[i].text;
			 addMyGroupUser(leftElement.options[i].value,
					 groupElement.value);
			 leftElement.options[i] = null;
			count++;
		}
	}
	var count1 = rightElement.options.length;
	count1 = count1 > 0 ? count1 : 0;
	for (j = 0; j < count; j++) {
		rightElement.options[count1] = new Option(textAry[j], valueAry[j]);
		count1++;
	}
}

/**
 * 添加操作
 * 
 * @param userId
 * @param companyId
 */
function addMyGroupUser(userId, groupId) {
	$.ajax({
		type : "POST",
		url : "/group/addGroupUser.json",
		dataType : "json",
		data : "userId=" + userId + "&groupId=" + groupId + "&roleId=2" ,
		success : function(data) {
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			alert("错误状态:" + textStatus + "\n错误信息:" + errorThrown);
		}
	});
}

/**
 * 删除此成员
 */
function subItem(objForm) {
	var valueAry = new Array();
	var textAry = new Array();
	var groupElement = objForm.elements["myGroupId"];
	var leftElement = objForm.elements["noGroupUser"];
	var rightElement = objForm.elements["myGroupUser"];
	var count = 0;
	var i, j;
	for (i = rightElement.options.length-1; i >=0 ; i--) {
		if (rightElement.options[i].selected) {
			valueAry[count] = rightElement.options[i].value;
			textAry[count] = rightElement.options[i].text;
			deleteMyGroupUser(rightElement.options[i].value,
					 groupElement.value);
			 rightElement.options[i] = null;
			 count++;
		}
	}
	var count1 = leftElement.options.length;
	count1 = count1 > 0 ? count1 : 0;
	for (j = 0; j < count; j++) {
		leftElement.options[count1] = new Option(textAry[j], valueAry[j]);
		count1++;
	}
}

/**
 * 删除所有
 * 
 * @param objForm
 */
function subAllItem(objForm) {
	var i;
	var rightElement = objForm.elements["myGroupUser"];
	for (i = 0; i < rightElement.options.length; i++) {
		rightElement.options[i].selected = true;
	}
	subItem(objForm);
}

/**
 * 添加所有
 * 
 * @param objForm
 */
function addAllItem(objForm) {
	var i;
	var leftElement = objForm.elements["noGroupUser"];
	for (i = 0; i < leftElement.options.length; i++) {
		leftElement.options[i].selected = true;
	}
	addItem(objForm);
}


分享到:
评论

相关推荐

    select互选效果

    在网页设计中,"select互选效果"是一种交互设计特性,允许用户在两个或多个下拉选择框(`&lt;select&gt;`元素)之间进行双向选择,实现数据的同步更新。这样的功能常见于需要关联两个列表项的场景,比如地区选择、类别筛选...

    多选框互选

    标题中的“多选框互选”通常指的是在用户界面设计中,如何实现两个或多个复选框(checkboxes)之间的互斥选择。在这样的设计中,当用户选择一个复选框时,其他关联的复选框会被自动取消选择,以确保用户只能选择其中...

    一个基于ASP.NET+AJAX+C#实现的左右ListBox互选操作控件程序

    在这个程序中,我们看到一个巧妙地结合了ASP.NET、AJAX(异步JavaScript和XML)以及C#编程语言的控件,实现了左右两个ListBox之间的互选功能。这样的设计使得用户可以在不刷新页面的情况下,便捷地在两个列表之间...

    jquery角色左右选择框rar

    本资源"jquery角色左右选择框rar"提供了一个使用jQuery实现的简单角色互选功能,这对于网页开发中的用户交互设计特别有用。在网页表单中,用户往往需要选择或分配某些属性或角色,这种左右选择框的设计可以提高用户...

    jquery双向选择器两侧select框列表文字左右选择器代码

    本文将深入探讨“jquery双向选择器两侧select框列表文字左右选择器代码”,这是一种常见于网页表单设计的功能,用于实现两个下拉列表(select框)之间的双向同步选择。 首先,我们需要理解jQuery的选择器。jQuery...

    jQuery左右文字双向列表选择器插件

    "jQuery左右文字双向列表选择器插件"是一个高效且功能丰富的工具,它为开发者提供了创建左右两个列表之间进行数据双向选择的便捷方式。这种插件尤其适用于需要用户在多个选项中进行对比和选择的场景,比如设置、配置...

    jQuery双列表左右互选

    在本文中,我们将深入探讨"jQuery双列表左右互选"这一功能,它是JavaScript库jQuery中的一个常见应用,常用于创建交互式的穿梭框。这个功能允许用户在两个列表之间选择、添加或删除项,以实现数据的筛选和分配。在...

    bootstrap multiselect-maste 左右选择、多选 样例包

    在Bootstrap Multiselect中,"左右选择"功能允许用户在两个独立的列表之间移动已选项目,这种设计常用于数据过滤或者配置场景,例如在"可用"和"已选"两个区域之间切换选项。用户可以通过简单的拖放或者点击按钮来...

    jquery下拉框左右选择

    本文将深入探讨“jquery下拉框左右选择”这一主题,它是一种交互式用户界面元素,通常用于在两个列表之间移动选项,帮助用户进行多选或排序操作。 首先,我们要明白“下拉框左右选择”的基本概念。这是一种UI设计...

    基于layui实现树形穿梭框

    - 创建DOM结构:在HTML中设置穿梭框的基本结构,包括两个列(left和right)以及树形结构的容器。 - 加载数据:使用layui的API加载树形结构的数据,通常是从服务器获取JSON格式的数据,然后调用`layui.tree`方法...

    KODExplorer 芒果云-资源管理器

    - 添加用户,选择所属的权限组。 - 权限按功能划分成颗粒,可以任意配置,例如普通使用者、游客等 - 搜索:支持递归搜索,可选择是否搜索文件内容。 - 增加桌面自定义壁纸。 - 皮肤优化 ok 多色彩支持。 - 应用...

    射频卡协议ISO14443中文

    射频卡协议ISO14443是一种广泛应用于非接触式智能卡技术的标准,主要用于门禁系统、公共交通、支付系统和个人身份验证等多个领域。该协议定义了卡片与读写器之间的无线通信规范,确保了数据的安全性和互操作性。本文...

Global site tag (gtag.js) - Google Analytics