JS中Select下拉列表类(支持输入模糊查询)功能

发布时间 - 2026-01-10 22:34:27    点击率:

下面给大家分享一段代码关于select下拉列表类支持输入模糊查询功能的实现代码,具体代码如下所示:

<span style="font-size:14px;">  <HTML>    
  <HEAD>    
  <META http-equiv='Content-Type' content='text/html; charset=gb2312'>    
  <TITLE>可输入的下拉框</TITLE>    
  </HEAD>    
  <BODY >    
   <Script Language="Javascript">  
  var j = 0;  
  function SelectValue(obj)  
  {  
    var input = obj.parentNode.nextSibling;  
    document.all.box2.value = obj.options[obj.selectedIndex].text;  
    document.getElementById("txtSection").value=obj.options[obj.selectedIndex].value;  
    alert(document.getElementById("txtSection").value);  
  }  
  function InputValue(obj)  
  {  
    var n = 1;    
    var tmpObj;  
    var src = document.all.SelectOption;  
    var msg = document.all.msg;  
    if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13){  
      if(obj.value!=""){  
         msg.style.display="";  
         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 (){    
            document.all.box2.value = this.innerHTML;  
            msg.style.display="none";  
            document.getElementById("txtSection").value=this.value;  
            }  
            msg.appendChild(selText);  
            n++;  
          }  
         }  
      }  
      else {  
        document.all.msg.style.display="none";  
      }  
    }  
    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);  
        document.all.box2.value = tmpObj.innerHTML;  
        msg.style.display="none";  
        document.getElementById("txtSection").value=tmpObj.value;  
      }  
    }  
  }  
  function SelMatch(src)  
  {  
    var currSel = document.all.box2.value;  
    for (var i=0;i<src.length;i++){  
      if (src(i).text==currSel)  
      {  
        src.options(i).selected = true;  
      }      
    }  
  }  
  function NoMsg()  
  {    
    if(document.activeElement.id=="msg")   
      return false;   
    else  
      document.all.msg.style.display='none';  
  }  
   </Script>  
   <TABLE border=0 cellPadding=1 cellSpacing=0 width="100%">  
     <TR>   
     <TD width="24%"><font face="Arial" size="2">Section</font></TD>  
     <TD COLSPAN=3 width="76%">   
  <div style="position:relative;">    
  <span style="margin-left:230px;width:18px;overflow:hidden;">   
  <select style="HEIGHT: 22px; WIDTH: 250px; margin-left:-232px;" onchange="SelectValue(this)" onclick="SelMatch(this)" id="SelectOption" name="SelectOption" >    
   <OPTION value='ALL' Selected>ALL</OPTION>  
  <OPTION value='0TEST1'>0TEST1 = Testing 1  
  <OPTION value='0TEST1'>0TEST2 = Testing 1  
  <OPTION value='0TEST1'>0TEST3 = Testing 1  
  <OPTION value='SECTION'>SECTION = Section Description XXXXX AAA  
  </OPTION>   
  </select></span>  
  <input name="box2" id="box2" style="width:230px;position:absolute;left:0px;" onkeyup="InputValue(this)" onblur="NoMsg()" onfocus="this.select();InputValue(this)" value="0" >    
  <div id="msg" style="border:1px solid green; font-size :14PX;white-space:nowrap;overflow:hidden;  
  width:230px;position:absolute;left:0px;top:20px;display:none"></div>  
  </div>  
    <Input Type="Hidden" Name="txtSection" id="txtSection">  
     </TD>  
    </TR>  
    </TABLE>  
  <p>  
  </BODY>
</HTML>  
</span> 

以上所述是小编给大家介绍的JS中Select下拉列表类(支持输入模糊查询)功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# select下拉列表  # JS实现模糊查询带下拉匹配效果  # AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)  # Node.js对MongoDB数据库实现模糊查询的方法  # JS Select下拉框(支持输入模糊查询)  # js模糊查询实例分享  # JS中的模糊查询功能  # 给大家  # 小编  # 在此  # 所示  # 所述  # 给我留言  # 感谢大家  # 查询功能  # 疑问请  # 有任何  # 下拉框  # InputValue  # tmpObj  # SelectOption  # alert  # msg  # event  # src  # keyCode  # document 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  网站图片在线制作软件,怎么在图片上做链接?  怎么用AI帮你设计一套个性化的手机App图标?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何在建站之星绑定自定义域名?  如何撰写建站申请书?关键要点有哪些?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  教你用AI润色文章,让你的文字表达更专业  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在万网主机上快速搭建网站?  jQuery 常见小例汇总  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  原生JS实现图片轮播切换效果  西安专业网站制作公司有哪些,陕西省建行官方网站?  网站建设整体流程解析,建站其实很容易!  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel如何处理文件下载请求?(Response示例)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Linux系统运维自动化项目教程_Ansible批量管理实战  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  JS中对数组元素进行增删改移的方法总结  活动邀请函制作网站有哪些,活动邀请函文案?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何快速搭建个人网站并优化SEO?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  ,南京靠谱的征婚网站?  WordPress 子目录安装中正确处理脚本路径的完整指南  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  微信小程序 配置文件详细介绍  深圳网站制作的公司有哪些,dido官方网站?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】