Javascript彈出對話框

本文介绍了一个用于弹出对话框并从部门中选择用户的JavaScript函数。该函数允许多选,并详细展示了如何通过一系列操作来管理和更新用户列表。

 // 用於彈出對話框,並從分部門(組織)中選擇用戶,可多選
// url: 彈出對話框的頁面的路徑,可以是相對路徑。
// height: 彈出模式對話框的高度。
// width: 彈出對話框的寬度。
// objList: 存放選擇用戶的列表框
// objComment: 放置說明文字的DIV


function ShowModalDialog(url,height,width,filledListBoxId,dataContainerId,buttonId)
{
 var oPara;
 var returnData = window.showModalDialog(url,oPara,"dialogHeight:"+height+"px; dialogWidth:"+width+"px; center: Yes; help: No; resizable: No; status: no;");
 
 if(returnData != null && returnData != "")
 {
  var listBox = document.getElementById(filledListBoxId);
  var dataContainer = document.getElementById(dataContainerId);
  var button = document.all.item(buttonId);
  
  listBox.style.display="block";
  
  var items = returnData.split("||");
  
  for(var i=0;i<items.length;i++)
  {
   var itemInfo = items[i];
   var textAndValue = itemInfo.split("|");
   
   //判斷該item是否已經存在于列表框
   var flag = false;
   for(var j=0;j<listBox.options.length;j++)
   {
    if(listBox.options[j].value == textAndValue[1])
    {
     flag = true;
     break;
    }
   }
   if(!flag)
   {
    var newOption = new Option(textAndValue[0],textAndValue[1]);
    listBox.options[listBox.options.length]=newOption;
    
    if(dataContainer.value == null || dataContainer.value == "")
    {
     dataContainer.value = textAndValue[0]+"|"+textAndValue[1];
    }
    else
    {
     dataContainer.value += "||" +textAndValue[0]+"|"+textAndValue[1];
    }
   }
  } 
   
  button.click();
  
 }
}

function AddAllItems(sourceListBox,targetListBox)
{
 for(var i=0;i<sourceListBox.options.length;i++)
 {
  var item = sourceListBox.options[i];
  if(!ContainItem(targetListBox,item.value))
   {
    targetListBox[targetListBox.length]=new Option(item.text,item.value);
   }
 }
}

function AddSelectedItems(sourceListBox,targetListBox)
{
 for(var i=0;i<sourceListBox.options.length;i++)
 {
  var item = sourceListBox.options[i];
  if(item.selected)
  {
   if(!ContainItem(targetListBox,item.value))
   {
    targetListBox[targetListBox.length]=new Option(item.text,item.value);
   }
  }
 }
}

function ContainItem(targetListBox,value)
{
    var exists = false;
 for(var j=0;j<targetListBox.options.length;j++)
 {
  if(value == targetListBox.options[j].value)
  {
   exists = true;
   return exists;
  }
 }
 return exists;
}

function RemoveSelectedItems(targetListBox)
{
 for(var i=targetListBox.options.length-1;i>=0;i--)
 {
  var item = targetListBox.options[i];
  if(item.selected)
  {
   targetListBox.options.remove(i);
  }
 }
}

function RemoveAllItems(targetListBox)
{
 for(var i=targetListBox.options.length-1;i>=0;i--)
 {
  var item = targetListBox.options[i];
  targetListBox.options.remove(i);
 }
}

function MoveDownSelectedItem(listBox)
{
 for(var i=0;i<listBox.options.length-1;i++)
 {
  var item = listBox.options[i];
  if(item.selected)
  {
   var value=item.value;
      var text=item.text;
      item.value=listBox.options[i+1].value;
      item.text=listBox.options[i+1].text;
      listBox.options[i+1].value=value;
      listBox.options[i+1].text=text;
      item.selected=false;
      listBox.options[i+1].selected=true;
      break;
  }
 }
}

function MoveUpSelectedItem(listBox)
{
 for(var i=0;i<listBox.options.length;i++)
 {
  var item = listBox.options[i];
  if(item.selected && i>0)
  {
   var value=item.value;
      var text=item.text;
      item.value=listBox.options[i-1].value;
      item.text=listBox.options[i-1].text;
      listBox.options[i-1].value=value;
      listBox.options[i-1].text=text;
      item.selected=false;
      listBox.options[i-1].selected=true;
      break;
  }
 }
}

function ReturnWindowsData(targetListBox)
{
 var ret = "";
 
 for(var i=0;i<targetListBox.options.length;i++)
 {
   ret+= targetListBox.options[i].value+"|"+targetListBox.options[i].text+"||";
 }
 if(ret.length == 0)
 {
  alert("No item has been selected!");
 }
 else
 {
  ret = ret.substr(0,ret.length-2);
  window.returnValue = ret;
  window.opener = null;
  window.close();
 }
}

function Cancel()
{
 window.returnValue = null;
 window.opener = null;
 window.close();
}

转载于:https://www.cnblogs.com/kenly33/archive/2006/11/29/576719.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值