`
zengshaotao
  • 浏览: 788025 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

可输入的下拉框

 
阅读更多

<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>

分享到:
评论

相关推荐

    js 可输入下拉框(jquery)

    在JavaScript和jQuery的世界里,"js 可输入下拉框(jquery)"是一个常见的交互设计需求,它结合了传统下拉框的简洁性与输入框的搜索功能,为用户提供更友好的交互体验。这种组件通常被称为“Autocomplete”或...

    可输入下拉框(html控件)

    简单javavscript实现的可输入下拉框(仿VC的comobox),用于html网页开发。 不懂代码的,可直接在页面中插入该源码实现,方便易用。

    可输入下拉框(select)源代码

    在网页设计中,"可输入下拉框"(通常称为Autocomplete或Typeahead下拉框)是一种增强用户体验的交互元素。传统的HTML `&lt;select&gt;` 标签仅允许用户从预定义的选项中选择,但可输入下拉框允许用户在输入时获取匹配建议...

    两种方式生成可输入下拉框。

    以上就是两种创建可输入下拉框的方法。在实际项目中,可以根据需求和兼容性考虑选用合适的方式。同时,我们可以通过CSS来定制样式,使交互更加友好和美观。记得在开发过程中,始终以用户为中心,提供流畅、直观的...

    asp.net可输入下拉框

    将CheckBox Text两个空间结合,简易的制作可输入下拉框

    这是一个可输入下拉框组件

    开发者可能会利用库或框架,如React、Vue或Angular,它们提供了丰富的组件库,包括可输入下拉框的实现。这些框架允许开发者通过简单的配置和API调用来实现复杂的功能,比如事件监听、数据绑定和动态过滤。 在实际...

    comBox可输入下拉框

    在IT行业中,"comBox可输入下拉框"是一种常见的用户界面组件,它结合了文本输入框和下拉选择框的功能。这样的设计旨在提供更灵活的用户体验,允许用户既可以手动输入值,也可以从预设的选项中进行选择。在网页开发中...

    可输入下拉框可输入下拉框

    标题中的“可输入下拉框”通常指的是在网页或应用程序设计中的一种交互元素,它结合了文本输入框和下拉列表的功能。用户可以既可以直接在输入框中输入文本,也可以从下拉列表中选择已有选项,这种设计常用于提供用户...

    可输入下拉框的源码以及demo (2008)

    在IT行业中,"可输入下拉框"是一种常见的交互元素,它结合了传统下拉列表与文本输入框的功能,让用户可以既从预设选项中选择,又可以直接输入自定义值。这种控件在网页和应用程序设计中十分常见,因为它们提高了用户...

    可输入下拉框jquery插件

    本文将详细介绍"可输入下拉框jQuery插件"的相关知识点。 首先,jQuery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画和Ajax交互。在本插件中,jQuery起到了核心作用,通过它的API和方法实现了...

    jQuery插件集之(可输入下拉框)N多例子+Demo

    本主题聚焦于一个特定的jQuery插件,即“可输入下拉框”插件,它提供了丰富的功能,如自动完成和模糊查询,极大地提升了用户在网页上的交互体验。 首先,我们要理解什么是“可输入下拉框”。传统的HTML下拉框(`...

    php可输入下拉框控件

    二、可输入下拉框控件 为了实现一个可输入的下拉框,我们可以利用JavaScript或者jQuery库来增强原生的HTML下拉框。这样的控件允许用户在输入框中直接键入文本,同时仍然提供下拉列表供用户选择。当用户开始输入时,...

    asp.net可输入可选择下拉框

    在这种情况下,“asp.net可输入可选择下拉框”应运而生,它结合了文本框和下拉框的优点,提供了更灵活的交互体验。 首先,我们需要理解这个自定义用户控件的工作原理。通常,它是通过JavaScript或者jQuery在客户端...

    可输入下拉框html实例

    利用input框和select框的组合设计的可输入下拉框,并支持键盘按钮实现上下移动。

    仿百度google的自动搜索可输入下拉框

    仿百度google的自动搜索可输入下拉框, 本人开发的, 网上的都不好用,郁闷,提手花了一天半呢

    可输入的下拉框.rar

    4. Vue.js、React等前端框架:它们提供了组件化开发方式,也有对应的可输入下拉框组件。 五、代码示例 以下是一个使用纯JavaScript实现的简单例子: ```html &lt;option value="option1"&gt;Option 1 ...

Global site tag (gtag.js) - Google Analytics