optiontransferselect例子
Struts2 OptionTransferSelect标签 动态赋值:![]()
1、html片面:
<td class="td2">
<s:optiontransferselect
id="sysWard"
doubleId="userWard"
name="userDept"
list="deptMap"
listKey="key"
listValue="value"
multiple="true"
headerKey="cnKey"
leftTitle="选择部门向右添加"
doubleList="deptNameMap"
doubleListKey="key"
doubleListValue="value"
doubleName="userBean.placeDept"
doubleHeaderKey="cnKey"
rightTitle="科护士长管理科室"
doubleMultiple="true"
allowSelectAll="false"
allowUpDownOnLeft="false"
allowUpDownOnRight="false"
addToLeftLabel="<<--向左"
addToRightLabel="向右-->>"
addAllToRightLabel="全选向右"
addAllToLeftLabel="全选向左"
cssClass="option"
doubleCssClass="option"
/>
</td>
2、异步动态赋值:
// 选择科护士长 事件
$("#select_userBean").change(function(){
$("#user_job_number").val($(this).val()); $.ajax({
type:"post",
url:"ManagerDept_setSysDept_null_null",
data:{"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
var obj = eval(msg);
$("#sysWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#sysWard").append("<option value="+key+">" + value + "</option>");
});
}
});
$.ajax({
type:"post",
url:"ManagerDept_setUserDept_null_null",
data:{"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
var obj = eval(msg);
$("#userWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#userWard").append("<option value="+key+">" + value + "</option>");
}); }
});
});
// 修改按钮 事件
$("#btn_updateManageDept").click(function(){
var depts = "";
$("#userWard").find("option").each(function(i){
depts += $(this).val()+",";
});
depts = depts.substr(0,depts.length-1);
$.ajax({
type:"post",
url:"ManagerDept_updateManagerDept_null_null",
data:{"depts":depts,"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
if(msg == "1"){
alert("更新成功!");
}else{
alert("更新失败!");
}
}
});
});
********************************************************************************************************
关键点1:动态赋值:
$("#sysWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#sysWard").append("<option value="+key+">" + value + "</option>");
});
其实,就是获取分别获取左右的 select 选择框,并分别动态添加 <option>标签。
关键点2:jquery遍历Map:
$.each(obj, function(key,value){
$("#userWard").append("<option value="+key+">" + value + "</option>");
});
如上代码,obj 对象时后台传递的Map对象,jquery 遍历 Map,不能像遍历Array一样,在function中传递i,作为数组索引。而是在function中传递两个参数 key 和 value,分别代表Map对象的key和value值。
关键点3:获取右边select的值:
var depts = "";
$("#userWard").find("option").each(function(i){
depts += $(this).val()+",";
});
depts = depts.substr(0,depts.length-1);
获取右边 select 的值,不能知道获取。有两种方法,方法一:可以把右边框中的值设置全部选中,即将selected 属性设置为true;方法二:就如上文的获取select 选择框的值。
optiontransferselect例子的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- 简单例子了解View的事件分发
什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- kqueue例子
网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...
- 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子
通过这个案例就知道为什么不要把原生的html放数据库了 常见的几种转码 常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...
- ElasticSearch 5学习(5)——第一个例子(很实用)
想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- mysql连接报错 Host ‘xxx’is blocked because of many connection errors;unblock with 'mysqladmin flush-hosts'
程序无法连接MySQL,提示: null, message from server: "Host '192.168.6.68' is blocked because of many con ...
- subversion-1.8.5 windows install dist
python build\win32\make_dist.py subversion-1.8.5 d:/rapm
- html5语法
html5语法沿用html语法,但更简单,更人性化. 一.DOCTYPE及字符编码 DOCTYPE:<!doctype html>或者<!DOCTYPE html>因为html ...
- MMORPG大型游戏设计与开发(客户端架构 part5 of vegine)
客户端异常捕获,是一件必然的事情,特别是在开发的时候就更需要这些有利于找出问题原因的捷径.区别于服务器的是,客户端基本上是以界面为主,你很难在正常运行程序的情况下进行一些输出的监视,如一些日志的记录. ...
- JustWeEngine - 轻量级游戏框架
JustWeEngine - 轻量级游戏框架 An easy open source Android game engine. Github地址 引擎核心类流程图 使用方法 引入Engine作为Lib ...
- junit 测试及assert的扩张
@Testpublic void method() 测试注释指示该公共无效方法它所附着可以作为一个测试用例. @Beforepublic void method() Before注释表示,该方法必须在 ...
- 虚拟机VMware怎么完全卸载干净
虚拟机VMware怎么完全卸载干净 听语音 | 浏览:19929 | 更新:2014-12-21 10:28 | 标签:虚拟机 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅高质屏和好师傅 ...
- 装完Centos7提示Initial setup of CentOS Linux 7 (core)(转载)
http://www.th7.cn/system/lin/201603/156762.shtml
- PL/SQL流程控制语句
PL/SQL流程控制语句介绍PL/SQL的流程控制语句, 包括如下三类:控制语句: IF 语句循环语句: LOOP语句, EXIT语句顺序语句: GOTO语句, NULL语句①if语句 IF < ...
- smarty foreach循环
1,smarty foreach1,单纯的数组array(1000,2000,3000),使用foreach(from = $array item=foo){$foo}2,键值对数组<ul> ...