/**
删除多选select中 的某个值,公共方法
只适用于同级节点下只有一个select的情况
v 此按钮,this
_id,option中的value的name属性
_name,option中的text的name属性
***如果每次添加不清空options,而是在原有基础添加
pr_id:备用value,需要保留select中之前的数据时填写
pr_name:备用 name,需要保留select中之前的数据时填写
*/
function deletedOne(v,_id,_name,pr_id,pr_name){
var id="input:hidden[name="+_id+"]";
var name="input:hidden[name="+_name+"]";
var parent=$(v).parent();
var sele=parent.find("select")[0];
var options=sele.options;
if(options){
for(var i=0;i<options.length;i++){
if(options[i].selected){
options.remove(i);
}
}
var idstr="";
var namestr="";
for(var i=0;i<options.length;i++){
if(!options[i].selected){
if(idstr==""){
idstr=options[i].value;
namestr=options[i].text;
}else{
idstr=idstr+","+options[i].value;
namestr=namestr+","+options[i].text;
}
}
}
var id_node=parent.find(id)[0];
var name_node=parent.find(name)[0];
$(id_node).val(idstr);
$(name_node).val(namestr);
if(pr_id && pr_name){
var _id_node=parent.find("input:hidden[name="+pr_id+"]")[0];
var _name_node=parent.find("input:hidden[name="+pr_name+"]")[0];
$(_id_node).val(idstr);
$(_name_node).val(namestr);
}
}
}
/**
公共的多选框显示方法
v:按钮
_id:value的name属性
_name:text的name属性
****如果每次添加不清空options,而是在原有基础添加
_pr_id:备用字段value,需要保留select中之前的数据时填写
_pr_name:备用字段name,需要保留select中之前的数据时填写
*/
function showSelect(v,_id,_name,_pr_id,_pr_name){
var parent=$(v).parent();
//获取同级下的节点
var name_node=parent.find("input:hidden[name="+_name+"]")[0];
var id_node=parent.find("input:hidden[name="+_id+"]")[0];
var idstr=$(id_node).val();
var namestr=$(name_node).val();
var ids=idstr.split(",");
var names=namestr.split(",");
//两个字段不为空时进行拼接操作,并把当前数据保留至备用位置
if(_pr_id && _pr_name){
var pr_id_node=parent.find("input:hidden[name="+_pr_id+"]")[0];
var pr_name_node=parent.find("input:hidden[name="+_pr_name+"]")[0];
var pr_idstr=$(pr_id_node).val();
var pr_namestr=$(pr_name_node).val();
if(pr_idstr){
for(var i=0;i<ids.length;i++){
var index=(pr_idstr+",").indexOf(ids[i]+",");
if(index==-1){
pr_idstr=pr_idstr+","+ids[i];
pr_namestr=pr_namestr+","+names[i];
}
}
$(pr_id_node).val(pr_idstr);
$(pr_name_node).val(pr_namestr);
$(id_node).val(pr_idstr);
$(name_node).val(pr_namestr);
}else{
$(pr_id_node).val(idstr);
$(pr_name_node).val(namestr);
}
}
//把值显示出在多选框
var sele=parent.find("select")[0];
$(sele).empty();
var result_str=$(id_node).val();
if(result_str){
var result_ids=result_str.split(",");
var result_name=$(name_node).val().split(",");
for(var i=0;i<result_ids.length;i++){
var opt=new Option(result_name[i],result_ids[i]);
opt.title=result_name[i];
sele.add(opt);
}
}
}

最新文章

  1. myeclipse 快捷键大全
  2. iOS开发Swift篇—(三)字符串和数据类型
  3. 010-python基础-数据类型-字符串操作
  4. [备忘]Asp.net MVC 将服务端Model传递的对象转为客户端javascript对象
  5. 【设计模式 - 1】之工厂模式(Factory)
  6. ExtJS5_自定义菜单1
  7. div没有设置高度时背景颜色不显示(浮动)
  8. 百度 LBS 开放平台,开发人员众測计划正式启动
  9. attachEvent和addEventListener详解
  10. CSDN博客越来越垃圾了,到处放广告
  11. 怎样在linux或者Unix上检查端口是否在使用
  12. [BZOJ 3332]旧试题
  13. 南京邮电大学java程序设计作业在线编程第七次作业
  14. ES6学习笔记(let,const,变量的解构赋值)
  15. Django下配置静态文件以及渲染图片
  16. [CocoaPods]常见问题
  17. Jaxb对xml报文头的小修小改
  18. CentOS7切换到root用户和退回普通用户
  19. xgboost安装
  20. macbook 外接显示器黑屏,不显示

热门文章

  1. 校准liunx时间简单好用的命令
  2. Selenium自动化测试WebDriver下载
  3. OpenSceneGraph3.4.0+Qt5.6.1MinGW开发环境部署
  4. loadrunner-27077报错解决办法
  5. openpose 问题
  6. JavaScript获取主流手机系统和型号
  7. Visual assint x(转)
  8. ceph中pool的管理
  9. C++11新特性之auto
  10. Thinkphp 导出大量数据 csv格式