数据的问题不是问题,表的结构对我来说也很清楚
我是希望得到数据定位的方法,最好举个例子,而且request后得到的是该员工的代码,不是显示的名称,也就是最后的结果和普通下拉框进行request.form后得到的结果一致。

解决方案 »

  1.   

    用iframe在后台通过input的onkeypress事件请求数据(提交当前输入值),获得请求的数据后主动更新父页面的相应表单域对象,不过这样响应比较慢..
    整体说来,这样的要求是不可能得到很快的响应速度的.
    一次性取出数据在客户端缓存的方案也不适合在大数据量下使用,而数据量小的话,这样的做法又是多此一举..所以我只能说,修改你的原有设计方案,制订一种WEB方式下适合的方案..
    如果说你硬要这么做的话,只能说你不了解B/S系统的局限.
      

  2.   

    可以编辑的Select (第二版
    <script src="editableselect.js"></script>
    <select id="EditableSelect">
    <option>可以编辑的select第二版</option>
    <option>Bencalie制作</option>
    </select>=======================
    editableselect.jswindow.onload=function(){
     var objSelect=EditableSelect
     var obj=document.all.EditableSelect
     getTop=obj.offsetTop;
     getLeft=obj.offsetLeft;
     while(objSelect=objSelect.offsetParent){
     getTop+=objSelect.offsetTop;
     getLeft+=objSelect.offsetLeft;
     } var oNewItem=document.createElement("OBJECT"); 
     document.body.insertBefore(oNewItem);
     oNewItem.outerHTML="<object id=editable style=\"z-index:2;position:absolute\" type=\"text/x-scriptlet\" data=\"addin2.htm\"></object>"; editable.style.left=getLeft+1
     editable.style.top=getTop+1
     editable.style.width=obj.offsetWidth-19
     editable.style.height=obj.offsetHeight-3
     
     obj.onchange=function(){editable.str(obj.options[obj.selectedIndex].text)}
     obj.onresize=function(){editable.style.width=obj.offsetWidth-19}
    }function addNewOption(value){
     EditableSelect.options[EditableSelect.length]=new Option(value,value) 
    }=======================
    addin2.htm<script language="vbs">
    function public_str(theStrIn)
     strIn.value=theStrIn
    end function
    </script>
    <body leftmargin=0 topmargin=0>
    <script language="javascript">
    function check(){
    var obj=parent.document.all.EditableSelect
    var theValue=document.all.strIn.value.replace(/^\s*/g,"").replace(/\s*$/g,"")
    if(event.keyCode==13){
    if(theValue!=""){
    for(i=0;i<obj.length;i++)
     if(obj.options[i].text==theValue){
      alert("该选项已经存在!");
      document.all.strIn.focus();
      document.all.strIn.value="";
      return;
     }
    parent.addNewOption(theValue) 
    }
    document.all.strIn.value=""
    }
    }
    </script>
    <input id=strIn style='border:0;width:100%;height:100%;padding-top:2px' onkeydown=check()>
    </body>
    实现可输入的下拉框
      

  3.   

    xcgh(晓刚):
         请给出整个的完整代码。用静态数据即可
    yonghengdizhen(秋叶映红了天):
         也算是一种方法吧,不过真的不是个好方法下面是剩下的900分的贴:http://expert.csdn.net/Expert/topic/1266/1266316.xml?temp=.7969171(第200分)
    http://expert.csdn.net/Expert/topic/1266/1266322.xml?temp=.0264551(第300分)
    http://expert.csdn.net/Expert/topic/1266/1266324.xml?temp=.395138(第400分)
    http://expert.csdn.net/Expert/topic/1266/1266333.xml?temp=.0507471(第500分)
    http://expert.csdn.net/Expert/topic/1266/1266337.xml?temp=.5014612(第600分)
    http://expert.csdn.net/Expert/topic/1266/1266339.xml?temp=.3528406(第700分)
    http://expert.csdn.net/Expert/topic/1266/1266342.xml?temp=.2436487(第800分)
    http://expert.csdn.net/Expert/topic/1266/1266344.xml?temp=.6040918(第900分)
    http://expert.csdn.net/Expert/topic/1266/1266347.xml?temp=.1181147(第1000分)
      

  4.   

    我看这样吧,用三个控件,再加一个文本输入框输入简拼,员工则只做成普通的下拉框,下拉框的value值为 简拼+员工编号,员工编号为固定位数,当在文本框里输入数据时,自动检索员工下拉框的值,并使第一个符合条件的值为选择状态。
    我对javascript不是很熟悉,如果哪位能按照这个思路给出代码则非常感谢
      

  5.   

    /***********freefalcon 2002-12-16************/
    <select name="username" onkeydown=spellList()>
         <option>free</option>
         <option>falcon</option>
         <option>张三</option>
         <option>张3</option>
         <option>李四</option>
         <option>王五</option>
    </select><script>
    var sel="",timer=null,re="";
    function spellList(){
           with(window.event){
              with(srcElement){
                  if(keyCode<48&&keyCode!=8)return;
                  if(keyCode>95&&keyCode<106)keyCode-=48
                  if(keyCode==8)sel=sel.slice(0,-1)              
                  else sel+=String.fromCharCode(keyCode)
                  window.status=sel
                  re=eval("/"+sel+"/i")
                  for(i=0;i<length;i++){
                   if(toPinyin(options[i].text).search(re)==0){selectedIndex=i;break;}
                  }
              }
              returnValue=false;
              clearTimeout(timer)
              timer=setTimeout("sel=''",2000);
         }
    }
    </script>
    <script language=javascript>
    var spell = {0xB0A1:"a", 0xB0A3:"ai", 0xB0B0:"an", 0xB0B9:"ang", 0xB0BC:"ao", 0xB0C5:"ba", 0xB0D7:"bai", 0xB0DF:"ban", 0xB0EE:"bang", 0xB0FA:"bao", 0xB1AD:"bei", 0xB1BC:"ben", 0xB1C0:"beng", 0xB1C6:"bi", 0xB1DE:"bian", 0xB1EA:"biao", 0xB1EE:"bie", 0xB1F2:"bin", 0xB1F8:"bing", 0xB2A3:"bo", 0xB2B8:"bu", 0xB2C1:"ca", 0xB2C2:"cai", 0xB2CD:"can", 0xB2D4:"cang", 0xB2D9:"cao", 0xB2DE:"ce", 0xB2E3:"ceng", 0xB2E5:"cha", 0xB2F0:"chai", 0xB2F3:"chan", 0xB2FD:"chang", 0xB3AC:"chao", 0xB3B5:"che", 0xB3BB:"chen", 0xB3C5:"cheng", 0xB3D4:"chi", 0xB3E4:"chong", 0xB3E9:"chou", 0xB3F5:"chu", 0xB4A7:"chuai", 0xB4A8:"chuan", 0xB4AF:"chuang", 0xB4B5:"chui", 0xB4BA:"chun", 0xB4C1:"chuo", 0xB4C3:"ci", 0xB4CF:"cong", 0xB4D5:"cou", 0xB4D6:"cu", 0xB4DA:"cuan", 0xB4DD:"cui", 0xB4E5:"cun", 0xB4E8:"cuo", 0xB4EE:"da", 0xB4F4:"dai", 0xB5A2:"dan", 0xB5B1:"dang", 0xB5B6:"dao", 0xB5C2:"de", 0xB5C5:"deng", 0xB5CC:"di", 0xB5DF:"dian", 0xB5EF:"diao", 0xB5F8:"die", 0xB6A1:"ding", 0xB6AA:"diu", 0xB6AB:"dong", 0xB6B5:"dou", 0xB6BC:"du", 0xB6CB:"duan", 0xB6D1:"dui", 0xB6D5:"dun", 0xB6DE:"duo", 0xB6EA:"e", 0xB6F7:"en", 0xB6F8:"er", 0xB7A2:"fa", 0xB7AA:"fan", 0xB7BB:"fang", 0xB7C6:"fei", 0xB7D2:"fen", 0xB7E1:"feng", 0xB7F0:"fo", 0xB7F1:"fou", 0xB7F2:"fu", 0xB8C1:"ga", 0xB8C3:"gai", 0xB8C9:"gan", 0xB8D4:"gang", 0xB8DD:"gao", 0xB8E7:"ge", 0xB8F8:"gei", 0xB8F9:"gen", 0xB8FB:"geng", 0xB9A4:"gong", 0xB9B3:"gou", 0xB9BC:"gu", 0xB9CE:"gua", 0xB9D4:"guai", 0xB9D7:"guan", 0xB9E2:"guang", 0xB9E5:"gui", 0xB9F5:"gun", 0xB9F8:"guo", 0xB9FE:"ha", 0xBAA1:"hai", 0xBAA8:"han", 0xBABB:"hang", 0xBABE:"hao", 0xBAC7:"he", 0xBAD9:"hei", 0xBADB:"hen", 0xBADF:"heng", 0xBAE4:"hong", 0xBAED:"hou", 0xBAF4:"hu", 0xBBA8:"hua", 0xBBB1:"huai", 0xBBB6:"huan", 0xBBC4:"huang", 0xBBD2:"hui", 0xBBE7:"hun", 0xBBED:"huo", 0xBBF7:"ji", 0xBCCE:"jia", 0xBCDF:"jian", 0xBDA9:"jiang", 0xBDB6:"jiao", 0xBDD2:"jie", 0xBDED:"jin", 0xBEA3:"jing", 0xBEBC:"jiong", 0xBEBE:"jiu", 0xBECF:"ju", 0xBEE8:"juan", 0xBEEF:"jue", 0xBEF9:"jun", 0xBFA6:"ka", 0xBFAA:"kai", 0xBFAF:"kan", 0xBFB5:"kang", 0xBFBC:"kao", 0xBFC0:"ke", 0xBFCF:"ken", 0xBFD3:"keng", 0xBFD5:"kong", 0xBFD9:"kou", 0xBFDD:"ku", 0xBFE4:"kua", 0xBFE9:"kuai", 0xBFED:"kuan", 0xBFEF:"kuang", 0xBFF7:"kui", 0xC0A4:"kun", 0xC0A8:"kuo", 0xC0AC:"la", 0xC0B3:"lai", 0xC0B6:"lan", 0xC0C5:"lang", 0xC0CC:"lao", 0xC0D5:"le", 0xC0D7:"lei", 0xC0E2:"leng", 0xC0E5:"li", 0xC1A9:"lia", 0xC1AA:"lian", 0xC1B8:"liang", 0xC1C3:"liao", 0xC1D0:"lie", 0xC1D5:"lin", 0xC1E1:"ling", 0xC1EF:"liu", 0xC1FA:"long", 0xC2A5:"lou", 0xC2AB:"lu", 0xC2BF:"lv", 0xC2CD:"luan", 0xC2D3:"lue", 0xC2D5:"lun", 0xC2DC:"luo", 0xC2E8:"ma", 0xC2F1:"mai", 0xC2F7:"man", 0xC3A2:"mang", 0xC3A8:"mao", 0xC3B4:"me", 0xC3B5:"mei", 0xC3C5:"men", 0xC3C8:"meng", 0xC3D0:"mi", 0xC3DE:"mian", 0xC3E7:"miao", 0xC3EF:"mie", 0xC3F1:"min", 0xC3F7:"ming", 0xC3FD:"miu", 0xC3FE:"mo", 0xC4B1:"mou", 0xC4B4:"mu", 0xC4C3:"na", 0xC4CA:"nai", 0xC4CF:"nan", 0xC4D2:"nang", 0xC4D3:"nao", 0xC4D8:"ne", 0xC4D9:"nei", 0xC4DB:"nen", 0xC4DC:"neng", 0xC4DD:"ni", 0xC4E8:"nian", 0xC4EF:"niang", 0xC4F1:"niao", 0xC4F3:"nie", 0xC4FA:"nin", 0xC4FB:"ning", 0xC5A3:"niu", 0xC5A7:"nong", 0xC5AB:"nu", 0xC5AE:"nv", 0xC5AF:"nuan", 0xC5B0:"nue", 0xC5B2:"nuo", 0xC5B6:"o", 0xC5B7:"ou", 0xC5BE:"pa", 0xC5C4:"pai", 0xC5CA:"pan", 0xC5D2:"pang", 0xC5D7:"pao", 0xC5DE:"pei", 0xC5E7:"pen", 0xC5E9:"peng", 0xC5F7:"pi", 0xC6AA:"pian", 0xC6AE:"piao", 0xC6B2:"pie", 0xC6B4:"pin", 0xC6B9:"ping", 0xC6C2:"po", 0xC6CB:"pu", 0xC6DA:"qi", 0xC6FE:"qia", 0xC7A3:"qian", 0xC7B9:"qiang", 0xC7C1:"qiao", 0xC7D0:"qie", 0xC7D5:"qin", 0xC7E0:"qing", 0xC7ED:"qiong", 0xC7EF:"qiu", 0xC7F7:"qu", 0xC8A6:"quan", 0xC8B1:"que", 0xC8B9:"qun", 0xC8BB:"ran", 0xC8BF:"rang", 0xC8C4:"rao", 0xC8C7:"re", 0xC8C9:"ren", 0xC8D3:"reng", 0xC8D5:"ri", 0xC8D6:"rong", 0xC8E0:"rou", 0xC8E3:"ru", 0xC8ED:"ruan", 0xC8EF:"rui", 0xC8F2:"run", 0xC8F4:"ruo", 0xC8F6:"sa", 0xC8F9:"sai", 0xC8FD:"san", 0xC9A3:"sang", 0xC9A6:"sao", 0xC9AA:"se", 0xC9AD:"sen", 0xC9AE:"seng", 0xC9AF:"sha", 0xC9B8:"shai", 0xC9BA:"shan", 0xC9CA:"shang", 0xC9D2:"shao", 0xC9DD:"she", 0xC9E9:"shen", 0xC9F9:"sheng", 0xCAA6:"shi", 0xCAD5:"shou", 0xCADF:"shu", 0xCBA2:"shua", 0xCBA4:"shuai", 0xCBA8:"shuan", 0xCBAA:"shuang", 0xCBAD:"shui", 0xCBB1:"shun", 0xCBB5:"shuo", 0xCBB9:"si", 0xCBC9:"song", 0xCBD1:"sou", 0xCBD4:"su", 0xCBE1:"suan", 0xCBE4:"sui", 0xCBEF:"sun", 0xCBF2:"suo", 0xCBFA:"ta", 0xCCA5:"tai", 0xCCAE:"tan", 0xCCC0:"tang", 0xCCCD:"tao", 0xCCD8:"te", 0xCCD9:"teng", 0xCCDD:"ti", 0xCCEC:"tian", 0xCCF4:"tiao", 0xCCF9:"tie", 0xCCFC:"ting", 0xCDA8:"tong", 0xCDB5:"tou", 0xCDB9:"tu", 0xCDC4:"tuan", 0xCDC6:"tui", 0xCDCC:"tun", 0xCDCF:"tuo", 0xCDDA:"wa", 0xCDE1:"wai", 0xCDE3:"wan", 0xCDF4:"wang", 0xCDFE:"wei", 0xCEC1:"wen", 0xCECB:"weng", 0xCECE:"wo", 0xCED7:"wu", 0xCEF4:"xi", 0xCFB9:"xia", 0xCFC6:"xian", 0xCFE0:"xiang", 0xCFF4:"xiao", 0xD0A8:"xie", 0xD0BD:"xin", 0xD0C7:"xing", 0xD0D6:"xiong", 0xD0DD:"xiu", 0xD0E6:"xu", 0xD0F9:"xuan", 0xD1A5:"xue", 0xD1AB:"xun", 0xD1B9:"ya", 0xD1C9:"yan", 0xD1EA:"yang", 0xD1FB:"yao", 0xD2AC:"ye", 0xD2BB:"yi", 0xD2F0:"yin", 0xD3A2:"ying", 0xD3B4:"yo", 0xD3B5:"yong", 0xD3C4:"you", 0xD3D9:"yu", 0xD4A7:"yuan", 0xD4BB:"yue", 0xD4C5:"yun", 0xD4D1:"za", 0xD4D4:"zai", 0xD4DB:"zan", 0xD4DF:"zang", 0xD4E2:"zao", 0xD4F0:"ze", 0xD4F4:"zei", 0xD4F5:"zen", 0xD4F6:"zeng", 0xD4FA:"zha", 0xD5AA:"zhai", 0xD5B0:"zhan", 0xD5C1:"zhang", 0xD5D0:"zhao", 0xD5DA:"zhe", 0xD5E4:"zhen", 0xD5F4:"zheng", 0xD6A5:"zhi", 0xD6D0:"zhong", 0xD6DB:"zhou", 0xD6E9:"zhu", 0xD7A5:"zhua", 0xD7A7:"zhuai", 0xD7A8:"zhuan", 0xD7AE:"zhuang", 0xD7B5:"zhui", 0xD7BB:"zhun", 0xD7BD:"zhuo", 0xD7C8:"zi", 0xD7D7:"zong", 0xD7DE:"zou", 0xD7E2:"zu", 0xD7EA:"zuan", 0xD7EC:"zui", 0xD7F0:"zun", 0xD7F2:"zuo"}var spellArray = new Array()
    var pn = ""
    function pinyin(char)
    {
    if (!char.charCodeAt(0) ||char.charCodeAt(0) < 1328) return char;
    if (spellArray[char.charCodeAt(0)]) return spellArray[char.charCodeAt(0)]
    execScript("ascCode=hex(asc(\""+char+"\"))", "vbscript")
    ascCode = eval("0x"+ascCode)
    if (!(ascCode>0xB0A0 && ascCode<0xD7FC))return "";
    for (var i=ascCode; (!spell[i] && i>0);) i--
    return spell[i]
    }
    function toPinyin(str)
    {
    var pStr = ""
    for (var i=0; i<str.length; i++)
    {
       pStr += pinyin(str.charAt(i))
    }
    return pStr
    }
    function pinyinSort(a, b)
    {
    var rValue = 0

    for (var i=0; i<a.length; i++)
    {
    var pinA = pinyin(a.charAt(i))
    var pinB = pinyin(b.charAt(i))
    if (rValue = pinA > pinB ? 1 : pinA < pinB ? -1 : 0) break
    }

    return rValue
    }
    </script>
      

  6.   

    我运行出现问题啦,在var spell 那一行 :缺少标识或字符串
      

  7.   

    freefalcon:我想你可能弄复杂啦,简拼是每个中文名字的第一个字符 比如说 “诸葛亮" 则简拼为'zgl', 并且'zgl'有专门一个唯一字段标识符比如说001来标识 'zgl' 对应“诸葛亮" ,也就是说,中文名、简拼以及其唯一标识都存放在表里面。你可以只在这个贴子里回复,如果确认要结贴,我会发短信息给你要你去每个贴子领分,决不食言
      

  8.   

    <select onkeydown=spellList()>
    <option value="001" spell="lb">刘备</option>
    <option value="001" spell="gy">关羽</option>
    <option value="001" spell="zf">张飞</option>
    <option value="001" spell="zgl">诸葛亮</option>
    <option value="001" spell="xy">心宇</option>
    </select>
    <script>
    var sel="",timer=null,re="";
    function spellList(){
           with(window.event){
              with(srcElement){
                  if(keyCode<48&&keyCode!=8)return;
                  if(keyCode>95&&keyCode<106)keyCode-=48
                  if(keyCode==8)sel=sel.slice(0,-1)              
                  else sel+=String.fromCharCode(keyCode)
                  window.status=sel
                  for(i=0;i<length;i++){
                   if(options[i].spell.toUpperCase().indexOf(sel)==0){selectedIndex=i;break;}
                  }
              }
              returnValue=false;
              clearTimeout(timer)
              timer=setTimeout("sel=''",1000);
         }
    }
    </script>
      

  9.   

    我的设计如下,加了一个文本框,把员工下拉框的value值为:简拼+员工编号代码如下:<script language="javascript">
    var onecount;
    subcat = new Array();
    subcat[0]=new Array('aaa001', '001', '员工一');
    subcat[1]=new Array('aab002','001', '员工二');
    subcat[2]=new Array('bbc002','001', '员工三');
    subcat[3]=new Array('cbc004', '002', '员工四');
    subcat[4]=new Array('cbb002','002', '员工五');
    subcat[5]=new Array('cb006', '002', '员工六');
    onecount=6;/* 根据部门筛选 */
    function changedepart(depart_id)
    {
        var myform=document.form1;
        myform.employee.length = 0; 

        var depart_id=depart_id;
        
        var i;    
        for (i=0;i < onecount; i++)
        {
            if(depart_id=='all')
                myform.employee.options[myform.employee.length] = new Option(subcat[i][2], subcat[i][0]);
           
            if (subcat[i][1] == depart_id)
            myform.employee.options[myform.employee.length] = new Option(subcat[i][2], subcat[i][0]);                
        }    
    }
    /*  根据简拼筛选, 由于每次筛选后下员工拉框里的个数都在变动,所以以初始的数组来计算,以保证
        每次变动都可以取到所有想要的值  */
       
    function getvalue(depart_id)
    {
      var myform=document.form1;
      var sel='';
      sel=document.form1.jp.value.toUpperCase();
      window.status=sel;

      var j=0;
      var sellen=sel.length;
        
      var depart_id=depart_id;
       
      /* 把符合条件的记录放在数组里,以变重新组合下拉框 */
      subcat2 = new Array();
      for(i=0;i<onecount;i++)
      {
         if(depart_id=='all')
         {
           if(subcat[i][0].substring(0,sellen).toUpperCase()==sel)
           {        
          subcat2[j]=new Array(subcat[i][2],subcat[i][0]);                
             j++;        
           }
         }
         else
         {
           if(subcat[i][1] == depart_id && (subcat[i][0].substring(0,sellen).toUpperCase()==sel))        
           {        
            subcat2[j]=new Array(subcat[i][2],subcat[i][0]);                
             j++;        
           }
         }
            
            
        }    
        
        myform.employee.length = 0; 
        if(j==0)
          myform.employee.options[0]=new Option('   ','   ');
        else
        {
          for(m=0;m<j;m++)
          {
            myform.employee.options[myform.employee.length]=new Option(subcat2[m][0], subcat2[m][1]);
          }
        }
       
    }</script>
    <body onLoad="changedepart(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <form name="form1" action="">
    <select name="depart_id" onChange="changedepart(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <option value="all">所有员工
    <option value="001">部门一
    <option value="002">部门二
    </select>
    <input type=text name="jp" onkeyup="getvalue(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <select name="employee" >    
    </select>
    </form>
    </body>
      

  10.   

    实际情况如下:
    部门有20多个,员工有2000多人,有些部门有一百多员工,开始的设计是选择部门,然后按部门筛选员工,但这样选择员工仍然很慢,所以增加一个简拼来快速定位。
      freefalcon(心宇) 把问题复杂化啦,其实所有的数据都保存在表里面,排序、字母等都不需要考虑,查询的时候就可以把一切都安排好。
      qiushuiwuhen(秋水无恨)代码确实简练,不过操作略显不太方便  在这里向各位表示感谢。此贴明天结,qiushuiwuhen(秋水无恨)请到其它几贴取分。
      

  11.   

    我不认为是复杂化,我认为是处理问题的另一种方法,因为用字库的话,就不受员工的限制,当然一级字库也许对于姓名中的生僻字还不能处理,但秋水等已经做好了完善的GBK字库,上面的代码虽多,但全是字库
    算了,懒得说了
    给我的感觉,楼主是胸有成竹的在提问
    再次感谢秋水等前辈做的工作,让我学到了很多
      

  12.   

    freefalcon(心宇) :不是我胸有成足,因为我是要完全把一个delphi程序转过来,而我确实对javascript不是很熟悉.或许你说的是对的,对于我这个特定的程序,用我这个适合些,但是对于通用性来说你和秋水的无疑是更好的。再次借用了秋水的一点东西,修改了一下,把下拉框的内容显示出来,不过定位没有解决掉,freefalcon(心宇)、秋水 若有可能帮个忙解决最后代码:
    <script language="javascript">
    var onecount;
    subcat = new Array();
    subcat[0]=new Array('aaa001', '001', '员工一');
    subcat[1]=new Array('aab002','001', '员工二');
    subcat[2]=new Array('bbc002','001', '员工三');
    subcat[3]=new Array('cbc004', '002', '员工四');
    subcat[4]=new Array('cbb002','002', '员工五');
    subcat[5]=new Array('cb006', '002', '员工六');
    onecount=6;/* 根据部门筛选 */
    function changedepart(depart_id)
    {
        var myform=document.form1;
        myform.employee.length = 0; 

        var depart_id=depart_id;
        
        var i;    
        for (i=0;i < onecount; i++)
        {
            if(depart_id=='all')
                myform.employee.options[myform.employee.length] = new Option(subcat[i][2], subcat[i][0]);
           
            if (subcat[i][1] == depart_id)
            myform.employee.options[myform.employee.length] = new Option(subcat[i][2], subcat[i][0]);                
        }    
    }
    /*  根据简拼筛选, 由于每次筛选后下员工拉框里的个数都在变动,所以以初始的数组来计算,以保证
        每次变动都可以取到所有想要的值  */
       
    function getvalue(depart_id)
    {
      var myform=document.form1;
      var sel='';
      sel=document.form1.jp.value.toUpperCase();
      window.status=sel;
      
      var j=0;
      var sellen=sel.length;
        
      var depart_id=depart_id;
       
      /* 把符合条件的记录放在数组里,以变重新组合下拉框 */
      subcat2 = new Array();
      for(i=0;i<onecount;i++)
      {
         if(depart_id=='all')
         {
           if(subcat[i][0].substring(0,sellen).toUpperCase()==sel)
           {        
          subcat2[j]=new Array(subcat[i][2],subcat[i][0]);                
            j++;        
           }
         }
         else
         {
           if(subcat[i][1] == depart_id && (subcat[i][0].substring(0,sellen).toUpperCase()==sel))        
           {        
            subcat2[j]=new Array(subcat[i][2],subcat[i][0]);                
            j++;        
           }
         } 
       }    
        
        myform.employee.length = 0; 
        if(j==0)
          myform.employee.options[0]=new Option('   ','   ');
        else
        {
          for(m=0;m<j;m++)
          {
            myform.employee.options[myform.employee.length]=new Option(subcat2[m][0], subcat2[m][1]);
          }
        }
        
        showdiv(myform.employee.offsetWidth);
       
    }function showdiv(w)
    {
    str="<table style='border:1 solid #000000;' width="+w+" cellspacing=0 celpadding=0>";
    for(i=0;i<document.all.employee.options.length;i++)
    str+="<tr><td style='font-size:10pt' onmouseover=myover() onmouseout=myout() onclick=myclick("+i+")>"+document.all.employee.options[i].text+"&nbsp;&nbsp;&nbsp;</td></tr>";
    likesel.innerHTML=str+"</table>";
    }
    function myover()
    {
    event.srcElement.style.cursor="default";
    event.srcElement.style.color="white";
    event.srcElement.style.background="darkblue";
    }
    function myout()
    {
    event.srcElement.style.color="";
    event.srcElement.style.background="";
    }
    function myclick(j)
    {
    document.all.employee.selectedIndex=j;
    likesel.style.display="none";
    }</script><body onLoad="changedepart(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <form name="form1" action="">
    <select name="depart_id" onChange="changedepart(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <option value="all">所有员工
    <option value="001">部门一
    <option value="002">部门二
    </select>
    <input type=text name="jp" onkeyup="getvalue(document.form1.depart_id.options[document.form1.depart_id.selectedIndex].value)">
    <input type=text name="jp2" id=al>
    <select name="employee" >    
    </select>
    <br>
    <div id=likesel><div>
    </form>
    </body>再次感谢各位!