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

下面给大家分享一段代码关于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下拉列表类(支持输入模糊查询)功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 利用jquery操作select下拉列表框的代码

    例: 复制代码 代码如下: <select id="sltList" name="list"> <option value="1">张三</option> <option value="2">李四</option> </select> // 获取当前选中的option值 $('#sltList').val() //获取当前选中项的文本 $('#sltLis

  • 用JavaScript来美化HTML的select标签的下拉列表效果

    首先通过一个例子来回顾一下select标签的用法: <html> <body> <form> <select name="cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="fiat">

  • js Select下拉列表框进行多选、移除、交换内容的具体实现方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><span class='wp_keywordlink_affiliate'><a href="tag/html" title="查看 html

  • javascript对下拉列表框(select)的操作实例讲解

    这篇文章,主要是关于javascript和select相关的最基本方法,以供不熟悉javascript的人参考.常见的情况是,提出表单结构的人, 不仅仅需要为程序设计逻辑,创建数据结构,还需要设计表单的样式,以及熟悉javascript:某些公司可能会要求您精通photoshop:最初的时候,我们都是全才. 下面是我们例子的基础:这不是一个标准的表单. <form id="f"> <select size="1" name="s"

  • php 获取select下拉列表框的值

    给select 表单无素一个名字. 表单提交后 用 $_POST 或 $_GET 方式提交 $_POST['sel']或者$_GET['sel']获得选中的select的value值 复制代码 代码如下: if( $_POST ) { echo $_POST['select']; } ?> <form name="form1" enctype="multipart/form-data" method="post" action=&qu

  • javascript 获取select下拉列表值的代码

    比如,在使用DWR的时候,如果你想传递下拉框的参数到后台的话,此时就需要先获取到下拉框的值了. 其实想要获取到下拉框的值是很简单的. 最关键的一段代码就是: 复制代码 代码如下: onchange="show(this.options[this.options.selectedIndex].value);" onchange="show(this.options[this.options.selectedIndex].value);" show是一个自定义的函数名.

  • Jquery多选下拉列表插件jquery multiselect功能介绍及使用

    有一个多选的需求,在网上找到了这个插件:multiselect https://github.com/ehynds/jquery-ui-multiselect-widget csdn博客上有这个插件的介绍,不少童鞋都问了这么个问题,怎么获取选中的值?真是个好问题,因为我在看demo的时候也发现了这个问题,呵呵! 先简单说说这个插件: jquery-multiselect 基于Jquery-ui的组件体系. 所以使用它的时候,先得导入jquery-ui相关的js和css哦 特性 •支持点击labe

  • Select标签下拉列表二级联动级联实例代码

    首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. 复制代码 代码如下: var options=new Array();    $(document).ready(function(){        //二级联动        $('#ddlPages').children('option').each(function(i){            options[i]='<option value="'+$(this).val()+'"&

  • 使用js实现一个可编辑的select下拉列表

    复制代码 代码如下: <select id="name" name="name" onkeydown="clearSelect(this,event);" onkeypress="writeSelect(this,event);" style="width:70px;"> <option value=""></option> <option va

  • 基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用

    在上篇基于BootStrap Metronic开发框架经验小结[二]列表分页处理和插件JSTree的使用,介绍了数据的分页处理,使用了Bootstrap Paginator插件,另外对树形列表,采用了JSTree插件,本篇继续介绍在编辑页面中常用到的控件Select2,这个控件可以更加丰富传统的Select下拉列表控件,提供更多的功能和更好的用户体验. 1.Select2控件介绍 这个插件是基于Select的扩展插件,能够提供更加丰富的功能和用户体验,它的github官网地址为:https://

  • 点击按钮后 文本框变为Select下拉列表框

    点击按钮后,文本框变为Select下拉列表框 function showSelect(){ var _t = document.getElementById('t'); var _s = document.getElementById('sel'); if( _t.style.display == ''){ _t.style.display = 'none'; } else{ _t.style.display = ''; } if ( _s.style.display == 'none' ){

随机推荐