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是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
-
css中的背景、边框、补丁相关属性
css中的背景.边框.补丁相关属性 关于背景涉及到背景颜色与背景图片 背景颜色background-color即可设定: 背景图片background-image即可设定: 但是背景图片还涉及到其他的 ...
-
Jmeter使用——参数化
最近一个想项目使用jmeter进行测试,陆续将遇到并解决的问题记录下来,本次主要记录参数化得一些问题. 1. 单台压力机 多个线程组不重复数字,注意分布式负载时多个压力机会出现重复的问题 主要思路分别 ...
-
A51汇编器的解释
A51汇编器是运行于IBM PC系列及其兼容机上的交叉汇编软件,其主要功能是将MCS-51系列单片机汇编语言源程序翻译成符合Intel目标文件格式的可再定位的目标代码,经过L51连接器的连接和装配,产 ...
-
tmux commands
最近在学Linux,用到tmux这个命令,看到很多快捷键的介绍,个人觉得不太好用,因此把几个常用的命令记录下来,以便以后学习和使用. 常用tmux commands: tmux ls ...
-
PHP7的新功能
[转自:http://www.yiibai.com/php7/ ] [PHP7标量类型声明] 在PHP7,一个新的功能,标量类型声明已被引入.标量类型声明有两种选择方式 - 强制方式- 强制性是默 ...
-
Linux 小知识翻译 - 「如何成为 Linux 内核开发者」
新年的开始,聊聊「怎么做才能成为Linux内核开发者」. Linux内核的开发都是由志愿开发者们完成的.他们并不属于某些特定的企业. 因此,你也有参加Linux内核开发的资格.不用说,卓越的编码技术以 ...
-
linux最大允许的文件描述符open files数nofile修改
open file resource limit 是linux中process可以打开的文件句柄数量.增加这个数值需要调整两个配置: 第一步, 修改系统最大允许的文件描述符 查看当前的设置: $ ca ...
-
artdialog5 bug
1.使用artdialog5时,使用两个输入框传值,一直无法取到值,使用简单的ID无法取到值,如id=branch..改为id=branch_str_dialog就可以了,问题是解决了,可是没有找到原 ...
-
树莓派3B+学习笔记:7、挂载exfat格式U盘
树莓派的官方系统,默认不支持exfat格式U盘挂载. 插入exfat格式U盘会出现以下错误提示: 安装exfat-fuse后可以正常识别,需要在命令行执行以下命令,按“y”键回车确认: sudo ap ...
-
codevs 1102 采药 2005年NOIP全国联赛普及组
1102 采药 2005年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB gold 题目描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最 ...