bootstrap实现双向选择框

bootstrap实现双向选择框

精简博客内容,尽量已行业术语来分享。
努力做到对每一位认可自己的读者负责。
帮助别人的同时更是丰富自己的良机。

bootstrap.js
bootstrap.css
jquery.js
前端视图代码
<label class="control-label col-md-1 col-sm-3 col-xs-12" for="first-name">双选框:</label>
<div class="form-group col-md-2 col-sm-6 col-xs-12">
	 <input type='text' id='subSystemName' name='subSystemName' readOnly onclick="selectSubSystem();" placeholder="请选择" class="form-control col-md-7 col-xs-12">
	 <input type='HIDDEN' id='subSystemCode' name='subSystemCode' />
</div>

function selectSubSystem() {
	var url = "<%=request.getContextPath()%>/select";
	window.open(url,"","height=500, width=700, top=150, left=200, toolbar=no, menubar=no,scrollbars =yes, resizable =yes,location=no");
}	

链接窗口代码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="icon" href="http://" type="images/x-ico" />
<title>Manager</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/lib/bootstrap.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/lib/bootstrap.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/lib//jquery.js"></script>
</head>
<body class="nav-md">
<fieldset>
	<form name="selectDepartmentForm" action="selectDepartment.do" method="post">
	<table class="table table-bordered dchannel-table">
	   <tbody>
		<tr class="item-default">
			<td align="right" style="width: 50%;">
			<select name='areamodule' multiple="multiple" size="15" style="width: 100%;">
			<option><b>可选列表</b></option>
			<option>=========</option>
			<option value="1">北京</option>
			<option value="2">上海</option>
			<option value="3">深圳</option>
			<option value="4">西安</option>
			<option value="5">广州</option>
			</select>
			</td>
			<td style="width: 50px;" valign="middle">
			<button type="button" class="btn btn-default btn-small" id="btn_select_all_area"															onClick="javascript:addAllItem(document.forms[0].areamodule,document.forms[0].module,'');">
			<span class="glyphicon glyphicon-forward"></span></button>
			<button type="button" class="btn btn-default btn-small" id="btn_choose_selected_area"																onClick="javascript:addSelectedItem(document.forms[0].areamodule,document.forms[0].module,'');">
			<span class="glyphicon glyphicon-chevron-right"></span></button>
			<button type="button" class="btn btn-default btn-small" id="btn_remove_selected_area"																onClick="javascript:removeSelectedItem(document.forms[0].module);"><span class="glyphicon glyphicon-chevron-left"></span></button>
			<button type="button" class="btn btn-default btn-small" id="btn_remove_all_area"																onClick="javascript:removeAllItem(document.forms[0].module);"><span class="glyphicon glyphicon-backward"></span></button>
			</td>
			<td style="width: 50%;">
			<select id="module" multiple="multiple" size="15" style="width: 100%;">
			<option><b>已选列表</b></option>
			<option>=========</option>
			</select></td>
		</tr>
		<table width="100%" align="center">
		<tr align="center">
		    <td colspan="20"><input type="button" class="tpbutton" value="确   定" onClick="submitSelect();" />&nbsp;&nbsp;&nbsp;
			<input type="button" class="tpbutton" value="关   闭" onClick="closeLayer();" /></td>
		</tr>
		</table>
	</form>
</fieldset>
</body>
</html>
<script language="javascript">
	function closeLayer() {
		window.close();
	}

	function submitSelect() {
		var selObj = document.getElementById("module");
		if (selObj.options.length < 3) {
			alert("请选择");
			return;
		}
		var code = "";
		var name = "";
		for (var i = 2; i < selObj.length; i++) {
			var optionVal = selObj.options[i].value.split(";");
			code += optionVal[0] + ";";
			name += selObj.options[i].text + ";"
		}

		if (code != "")
			code = code.substring(0, code.length - 1);
		if (name != "")
			name = name.substring(0, name.length - 1);
		window.parent.setMultiSelect(code, name);
		window.close();
	}
	function selectAll(list) {
		for (i = 0; i < list.options.length; i++) {
			if (i < 2) {
				list.options[i].selected = false;
			} else {
				list.options[i].selected = true;
			}
		}
	}

	function findItem(item, list) {
		for (var i = 2; i < list.options.length; i++) {
			var roleitem = list.options[i].value.substring(0,
					list.options[i].value.indexOf(";"));
			if (roleitem == item) {
				return true;
			}
		}
		return false;
	}

	function addSelectedItem(srclist, destlist, desc) {
		for (var i = 2; i < srclist.options.length; i++) {
			if (srclist.options[i].selected) {
				var blfind = findItem(srclist.options[i].value, destlist);
				if (!blfind) {
					var oOption = document.createElement("OPTION");
					oOption.text = srclist.options[i].text;
					if (desc != "") {
						oOption.text += "(" + desc + ")";
					}
					oOption.value = srclist.options[i].value + ";"
							+ oOption.text;
					destlist.add(oOption);
				}
			}
		}
	}

	function removeSelectedItem(list) {
		var i = list.options.length;
		while (i > 2) {
			i--;
			if (list.options[i].selected) {
				list.options[i] = null;
			}
		}
	}

	function addAllItem(srclist, destlist, desc) {
		for (var i = 2; i < srclist.options.length; i++) {
			var blfind = findItem(srclist.options[i].value, destlist);
			if (!blfind) {
				var oOption = document.createElement("OPTION");
				oOption.text = srclist.options[i].text;
				if (desc != "") {
					oOption.text += "(" + desc + ")";
				}
				oOption.value = srclist.options[i].value + ";" + oOption.text;
				destlist.add(oOption);
			}
		}
	}

	function removeAllItem(list) {
		var i = list.options.length;
		while (i > 2) {
			i--;
			list.options[2] = null;
		}
	}
</script>

将选择内容提交到父类页面

function setMultiSelect(code,name){
	$('#subSystemName', window.opener.document).val(code);
	$('#subSystemName', window.opener.document).val(name);
}
效果图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值