WEB下拉框模糊查询

js:

 

 


var j = 0;
function SelectValue(obj,txtId,divBoxId)
{
    var input = obj.parentNode.nextSibling;
    document.getElementById(divBoxId).value = obj.options[obj.selectedIndex].text;
    document.getElementById(txtId).value=obj.options[obj.selectedIndex].value;
    //alert(document.getElementById(txtId).value);
}

function InputValue(obj,txtId,selectId,msgId,divBoxId,objDisplaySelect)
{
    var n = 1;   
    var tmpObj;
    var src = document.getElementById(selectId);
    var msg = document.getElementById(msgId);
   
           if(objDisplaySelect!=undefined&&msg.style.display=="")
            {
              var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
              {
               document.getElementById(objSelect[i]).style.display="none";
              }
             }
            else if(objDisplaySelect!=undefined&&msg.style.display=="none")
            {
               var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
              {
               document.getElementById(objSelect[i]).style.display="";
              }
            }
    if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13){
        if(obj.value!=""){
            if(objDisplaySelect!=undefined)
            {
              var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
              {
               document.getElementById(objSelect[i]).style.display="none";
              }
             }
              msg.style.display="";
              msg.innerText="";//msg.innerHTML=""  ;
             if(msg.hasChildNodes())
             {
                msg.childNodes[0].parentNode.removeChild(msg.childNodes[0]);
             }
            
             for (var i=0;i<src.length;i++){
               var selValue = document.createElement("div");
               var selText = document.createElement("div");
               selText.value = src(i).value;
               selText.innerHTML = src(i).text;         

               if (src(i).text.toLowerCase().indexOf(obj.value.toLowerCase())==0){
                    selText.setAttribute("id","selText"+n);
                    selText.onmouseover=function (){  
                    this.style.backgroundColor='#003399';  
                    this.style.color ='#ffffff';
                   }
                   selText.onmouseout=function (){  
                    this.style.backgroundColor='#ffffff';
                    this.style.color ='#000000';
                   }
                   selText.onclick=function (){  
                   if(objDisplaySelect!=undefined)
                   {
                     var objSelect= objDisplaySelect.split(",");
                     for(var i=0; i<objSelect.length;i++)
                     {
                       document.getElementById(objSelect[i]).style.display="";
                     }
                   }
                    document.getElementById(divBoxId).value = this.innerHTML;
                    msg.style.display="none";
                    document.getElementById(txtId).value=this.value;
                   }
                    msg.appendChild(selText);
                    n++;
               }
             }
        }
        else {
            document.getElementById(msgId).style.display="";
            document.getElementById(txtId).value="-1";
             if(objDisplaySelect!=undefined&&msg.style.display=="")
            {
              var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
              {
               document.getElementById(objSelect[i]).style.display="none";
              }
             }
            else if(objDisplaySelect!=undefined&&msg.style.display=="none")
            {
               var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
              {
               document.getElementById(objSelect[i]).style.display="";
              }
            }
//            if(objDisplaySelect!=undefined)
//            {
//              var objSelect= objDisplaySelect.split(",");
//              for(var i=0; i<objSelect.length;i++)
//              {
//               document.getElementById(objSelect[i]).style.display="none";
//              }
//             }
              if(msg.hasChildNodes())
             {
                 msg.innerText="";
                 for(var i=0;i<msg.childNodes.length;i++)
                 msg.childNodes[i].parentNode.removeChild(msg.childNodes[i]);
             }
            
               for (var i=0;i<src.length;i++){
                 var selValue = document.createElement("div");
                 var selText = document.createElement("div");
                 selText.value = src(i).value;
                 selText.innerHTML = src(i).text;         
                 selText.setAttribute("id","selText"+n);
                 selText.onmouseover=function ()
                 {  
                 this.style.backgroundColor='#003399';  
                 this.style.color ='#ffffff';
                 }
                 selText.onmouseout=function ()
                 {  
                 this.style.backgroundColor='#ffffff';
                 this.style.color ='#000000';
                 }
                 selText.onclick=function ()
                 {  
                     if(objDisplaySelect!=undefined)
                     {
                       var objSelect= objDisplaySelect.split(",");
                        for(var i=0; i<objSelect.length;i++)
                        {
                          document.getElementById(objSelect[i]).style.display="";
                         }
                      }
                    document.getElementById(divBoxId).value = this.innerHTML;
                    msg.style.display="none";
                    document.getElementById(txtId).value=this.value;
                 }
                 msg.appendChild(selText);
                 n++;
             }
           
        }
    }
    else {
        //press down key
        if(event.keyCode==40){
            j++;
            for (var i=0; i<src.length; i++)
            {
                tmpObj = document.getElementById("selText"+i);
                if(tmpObj != null){
                    tmpObj.style.backgroundColor='#ffffff';
                    tmpObj.style.color ='#000000';
                }               
            }
            tmpObj = document.getElementById("selText"+j);
            if(tmpObj != null){
                tmpObj.style.backgroundColor='#003399';  
                tmpObj.style.color ='#ffffff';
            }else{
                j = 0;
            }           
        }
        //press up key
        if (event.keyCode==38){
            j--;
            for (var i=0; i<src.length; i++)
            {
                tmpObj = document.getElementById("selText"+i);
                if(tmpObj != null){
                    tmpObj.style.backgroundColor='#ffffff';
                    tmpObj.style.color ='#000000';
                }               
            }
            tmpObj = document.getElementById("selText"+j);
            if(tmpObj != null){
                tmpObj.style.backgroundColor='#003399';  
                tmpObj.style.color ='#ffffff';
            }else{
                j = 2;
            }       
        }
        //press enter key
        if (event.keyCode==13){
            tmpObj = document.getElementById("selText"+j);
            if(tmpObj !=null)
            {
            document.getElementById(divBoxId).value = tmpObj.innerHTML;
            msg.style.display="none";
            document.getElementById(txtId).value=tmpObj.value;
//              if(objDisplaySelect!=undefined)
//              {
//               var objSelect= objDisplaySelect.split(",");
//               for(var i=0; i<objSelect.length;i++)
//                {
//                 document.getElementById(objSelect[i]).style.display="";
//                }
//              }
            }
        }
    }
}

function SelMatch(src,divBoxId)
{
    var currSel = document.getElementById(divBoxId).value;
    for (var i=0;i<src.length;i++){
        if (src(i).text==currSel)
        {
            src.options(i).selected = true;
        }       
    }
}

function NoMsg(megId,objDisplaySelect)
{   
    if(document.activeElement.id==megId)
        return false;
    else
    {
         if(objDisplaySelect!=undefined)
          {
             var objSelect= objDisplaySelect.split(",");
              for(var i=0; i<objSelect.length;i++)
             {
               document.getElementById(objSelect[i]).style.display="";
             }
          }
        document.getElementById(megId).style.display="none";
    }
}

 

html:

<div class="selectStyle">
                   <span id="dropSpan" class="selectSpan" style="margin-left:234px;width:18px; " > 
                       
                    <asp:DropDownList ID="dropDowListDept" runat="server"  CssClass="selectDorpDown" onchange="SelectValue(this,'txtSection','inputSearchName')" onclick="SelMatch(this,'inputSearchName')"  ></asp:DropDownList>
                 
                    </span>
                    <input name="inputSearchName" id="inputSearchName" style="width:234px;" class="inputPosition"  onkeyup="InputValue(this,'txtSection','<%=dropDowListDept.ClientID %>','msg','inputSearchName','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')"  onblur="NoMsg('msg','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')" onfocus="InputValue(this,'txtSection','<%=dropDowListDept.ClientID %>','msg','inputSearchName','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')" value="全部" />
                   
                    <div id="msg" style="width:230px; height:250px; display:none;" class="selectDivStyle"> </div>
                    <input type="hidden" name="txtSection" id="txtSection" />
                  
               </div>

 

 

CSS:

 

.glist {overflow:no;}
.glist .border_table{border-top:1px solid #9EB2EC;border-left:1px solid #9EB2EC;border-right:1px solid #9EB2EC;}
.glist .header{background-color:#BBCCFF;height:31px;}
.glist .header td{border-top:#FFF solid 1px;vertical-align:middle;text-align:center;}
.glist .header .colLeft{border-left:#FFF solid 1px;}
.glist .header .col{border-left:#FFF solid 1px;}
.glist .header .colRight{border-left:#FFF solid 1px;}
.glist .item{height:23px;}
.glist .item td{text-align:center;vertical-align:middle;border-bottom:1px solid #9EB2EC;}
.glist .item .col{border-left:1px solid #9EB2EC;}
.glist .item .colRight{border-left:1px solid #9EB2EC;}
.glist .empt td{border-bottom:1px solid #9EB2EC; text-align:center;}
.glist .oper{border:1px #000;}

.itemImport .item .colExceptionColor {background-color:#FF712D;}

.itemSpan {height:20px;width:75px;text-align:center;background-color:#E3E9FF;}
.selectStyle{position:absolute;}
.selectStyle .bodyOverflow {overflow:auto;}
.selectStyle .inputPosition {position:absolute;left:0px;}
.selectStyle .selectDivStyle{border:1px  solid #9EB2EC;  font-size :14px;white-space:nowrap;overflow:auto;position:absolute;left:0px;top:20px; background-color:#FFF; }
.selectStyle .selectSpan{overflow:hidden;}
.selectStyle .selectDorpDown{height: 22px; width: 250px; margin-left:-232px;display:none}

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值