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是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- TCP的关闭,到底是几次握手,每次的标志位到底是什么!
做题的时候遇到一个问题,TCP关闭的时候到底是三次还是四次握手,如果是三次,少了哪部分? 按照 <计算机网络> -第五版-谢希仁 然而对于TCP关闭, 有的地方能找到 ...
- 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群
本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...
- POJ3494Largest Submatrix of All 1’s[单调栈]
Largest Submatrix of All 1’s Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 5883 Ac ...
- ATM模拟程序
一个很简单的ATM模拟程序 #include <stdio.h> void chaxun(int a3){ int b; b=a3; printf("您的余额为:%d\n&quo ...
- QFontMetrics的一个问题
今天发现QFontMetric的一个问题 QFontMetrics可以输入一个字体和一个字符串,计算出字符串在这种字体下的显示尺寸. 这种计算比较耗时间,因此Qt内部应该是缓存了计算结果.具体方法是在 ...
- ORACLE临时表总结(转载)
转载地址:http://www.cnblogs.com/kerrycode/p/3285936.html 临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类 ...
- childNodes的兼容性问题
元素.childNodes:只读 属性 子节点列表集合 标准浏览器下:包含文本和元素类型节点,也会包含非法嵌套的子节点 非标准浏览器下:只包含元素类型节点,ie7下不会包含非法嵌套的子节点 child ...
- php中的ip2long和long2ip的理解
IPv4地址是如何表示的 IPv4使用无符号32位地址,因此最多有2的32次方减1(4294967295)个地址.一般的书写法为用4个小数点分开的十进制数,记为:A.B.C.D,比如:157.23.5 ...
- datepicker monthpicker
- 兼容利器之X-UA-Compatible
文档兼容模式 不同浏览器之间经常产生各种奇异的现象,为了解决这些问题,使用以下方法,发现很多问题自动消失不见了 <meta http-equiv="X-UA-Compatible&qu ...