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例子的更多相关文章

  1. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  2. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  3. REGEX例子

    作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...

  4. CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子

    CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...

  5. 简单例子了解View的事件分发

    什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...

  6. 简单的例子了解自定义ViewGroup(一)

    在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...

  7. kqueue例子

    网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...

  8. 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子

     通过这个案例就知道为什么不要把原生的html放数据库了  常见的几种转码  常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...

  9. ElasticSearch 5学习(5)——第一个例子(很实用)

    想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...

随机推荐

  1. Elasticsearch 安装中文分词

    github地址:https://github.com/medcl/elasticsearch-analysis-ik 注意版本要对应,否则编译完成后elasticsearch不能正常启动 下载文件, ...

  2. Java基础语法总结1

    一.标识符及字符集 Java语言规定标识符是以字母.下划线"_"或美元符号"$"开始,随后可跟数字.字母.下划线或美元符号的字符序列.Java标识符大小写敏感, ...

  3. 利用div实现遮罩层效果

    利用div实现遮罩层效果就是利用一个全屏.半透明的div遮住页面上其它元素,典型的例子就是百度的登录界面.下面贴出示例代码: <!DOCTYPE html> <html> &l ...

  4. Docker+OpenvSwitch搭建VxLAN实验环境

    一.概述                                                    1.环境:我这里是2台linux机器(host1和host2),发行版是kali2.0, ...

  5. AStar算法的学习

    摘自:http://www.cnblogs.com/hxsyl/p/3994730.html A*算法的java实现 import java.util.ArrayList; import java.u ...

  6. 大话设计模式C++版——原则和引言

    转贴请注明转自:http://blog.csdn.net/gufeng99/article/details/45832711 读程杰的<大话设计模式>有一段时间了,将其C#版的设计模式代码 ...

  7. CoCreateInstance调用COM接口伪流程

    在编写组件程序时,经常会使用CoCreateInstance直接取COM组件的接口,非常方便,那CoCreateInstance到底干了些什么事呢?1.CoCreateInstance取COM组件的接 ...

  8. [转]在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

    本文转自:http://www.cnblogs.com/powertoolsteam/p/MVC5_GridView_2.html 背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5 ...

  9. 感觉没睡好就..-shenmedoumeixie....

    hi 昨晚没睡好,虽然梦很香,但睡不好没精神做科研啊... 1.jQuery 十二.实现聊天室创建 12.1 基本功能 登陆: 无刷新实时交流: 支持表情. 12.2 大致效果 登陆——>验证, ...

  10. php5.3 fastcgi方式 安装以及和nginx整合

    注意:不要随便改变基础库的版本,否则会对别的软件产生编译错误 1.基础依赖包安装: cd /software/zlib- ./configure make make install cd /softw ...