从两个ListBox将ListItem选择到一个ListBox

从ListBox控件lbx_Personal( 个人生命周期)和lbx_Enterprise( 企业生命周期)选择ListItem到lbx_LifeCircle(综合生命周期),使用隐藏域hdn_LifeCircle( 类别:选择的是个人类型还是企业类型还是个人企业类型都有)和hdn_LCList(具体生命周期ID)

1.页面加载时给ListBox添加Attribute:

lbx_LifeCircle.Attributes.Add("ondblclick", "Remove()");   //双击综合生命周期ListBox选项删除选择的生命周期信息
lbx_Enterprise.Attributes.Add("ondblclick", "AddEnterprise()");   //双击企业生命周期ListBox添加企业生命周期信息
lbx_Personal.Attributes.Add("ondblclick", "AddPersonal()");   //双击个人生命周期ListBox添加个人生命周期信息

2.初始化个人和企业生命周期信息省略

3.js实现

function Remove()  //双击综合生命周期ListBox选项删除选择的生命周期信息
{
    var en = document.getElementById("lbx_Enterprise");  //企业生命周期信息ListBox
    var p = document.getElementById("lbx_Personal");  //个人生命周期信息ListBox
    var lc = document.getElementById("lbx_LifeCircle");  //综合生命周期信息ListBox
    var hdn = document.getElementById("hdn_LifeCircle"); //类别
    var list = document.getElementById("hdn_LCList"); //选择的生命周期列表,每项生命周期信息均包含生命周期文字描述和ID,文字描述和ID中间用"|"隔开,不同的生命周期项之间用","隔开
    
 if(lc.options.length == 0)  //如果综合生命周期ListBox中没有ListItem,取消双击事件
 {
    event.returnValue = false;
    return;
 }
   
    list.value = list.value.replace(lc.options[lc.selectedIndex].innerText+"|"+lc.options[lc.selectedIndex].value+",","");  //在隐藏域中去掉生命周期
 lc.options.remove(lc.selectedIndex);  //在综合生命周期ListBox中去掉ListItem
   
 if(lc.options.length > 0)
 {
  var isPersonalExist = false;
  var isEnterpriseExist = false;
  for(var i=0;i<lc.options.length;i++)
  {
   if(p.options.length > 0)
   {
    for(var pi=0;pi<p.options.length;pi++)  //判断是否选择了个人生命周期信息
    {
     if(p.options[pi].innerText == lc.options[i].innerText)
     {
      isPersonalExist = true;
      break;
     }               
    }
   }
           
   if(en.options.length > 0)  //判断是否选择了企业生命周期信息
   {
    for(var eni = 0;eni<en.options.length;eni++)
    {
     if(en.options[eni].innerText == lc.options[i].innerText)
     {
        isEnterpriseExist = true;
        break;
     }
    }
   }
  }
       
  if(isPersonalExist && isEnterpriseExist)   //如果个人和企业生命周期信息都选择了生命周期类别为2
  {
   hdn.value = "2";
  }
  else if(isPersonalExist && !isEnterpriseExist)  //如果只选择了个人生命周期信息生命周期类别为0
  {
   hdn.value = "0";
  }
  else  //如果只选择了企业生命周期信息生命周期类别为1
  {
   hdn.value = "1";
  }
 }
 else  //如果没有生命周期信息,生命周期类别为9
 {
  hdn.value = "9";
 }
}

function AddPersonal()   //添加个人生命周期信息
{
    var p = document.getElementById("lbx_Personal");
    var lc = document.getElementById("lbx_LifeCircle");
    var hdn = document.getElementById("hdn_LifeCircle");
    var lcList = document.getElementById("hdn_LCList");
   
 var isExist = false;
 for(var i=0;i<lc.options.length;i++)  //判断要添加的ListItem是否已添加
 {
    if(p.options[p.selectedIndex].value == lc.options[i].value)
    {
    isExist = true;
    break;
    }
 }
   
 if(!isExist)  //如果要添加的ListItem没有添加到生命周期列表则添加进去并添加到隐藏域
 {
  var newOption = document.createElement("OPTION");
  newOption.text = p.options[p.selectedIndex].innerText;
  newOption.value = p.options[p.selectedIndex].value;
  if(newOption.text != "")
  {
      lc.options.add(newOption);
  }
  lcList.value += newOption.text + "|" + newOption.value + ",";
 }
   

//调整生命周期类别
 if(hdn.value == "9")
 {
  hdn.value = "0";
 }
 else if(hdn.value == "1")
 {
  hdn.value = "2";
 }
}

function AddEnterprise()  //添加企业生命周期信息
{
    var en = document.getElementById("lbx_Enterprise");
    var lc = document.getElementById("lbx_LifeCircle");
    var hdn = document.getElementById("hdn_LifeCircle");
    var lcList = document.getElementById("hdn_LCList");
   
 var isExist = false;
 for(var i=0;i<lc.options.length;i++)
 {
  if(en.options[en.selectedIndex].value == lc.options[i].value)
  {
   isExist = true;
   break;
  }
 }
   
 if(!isExist)
 {
  var newOption = document.createElement("OPTION");
  newOption.text = en.options[en.selectedIndex].innerText;
  newOption.value = en.options[en.selectedIndex].value;
  if(newOption.text != "")
  {
      lc.options.add(newOption);
  }
  lcList.value += newOption.text + "|" + newOption.value + ",";
 }
   
 if(hdn.value == "9")
 {
    hdn.value = "1";
 }
 else if(hdn.value == "0")
 {
    hdn.value = "2";
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值