`

【下拉框可输入+自动提示+支持键盘事件兼容IE,FF】

    博客分类:
  • js
 
阅读更多

 

$(document).ready(function() {
    var cus = 0;
    var classname = "";
    var arry = new Array();
    var $autocomplete = $("<ul class='autocomplete'></ul>").hide().insertAfter("#box4");
    $("#hoho").find("option").each(function(i, n) {
        arry[i] = $(this).text()
    });
    $("#box4").keyup(function(event) {
        if ((event.keyCode != 38) && (event.keyCode != 40) && (event.keyCode != 13)) {
            $autocomplete.empty();
            var $SerTxt = $("#box4").val().toLowerCase();
            if ($SerTxt != "" && $SerTxt != null) {
                for (var k = 0; k < arry.length; k++) {
                    if (arry[k].toLowerCase().indexOf($SerTxt) >= 0) {
                        $("<li title=" + arry[k] + " class=" + classname + "></li>").text(arry[k]).appendTo($autocomplete).mouseover(function() {
                            $(".autocomplete li").removeClass("hovers");
                            $(this).css({
                                background: "#3368c4",
                                color: "#fff"
                            })
                        }).mouseout(function() {
                            $(this).css({
                                background: "#fff",
                                color: "#000"
                            })
                        }).click(function() {
                            $("#box4").val($(this).text());
                            $autocomplete.hide()
                        })
                    }
                }
            }
            $autocomplete.show()
        }
        var listsize = $(".autocomplete li").size();
        $(".autocomplete li").eq(0).addClass("hovers");
        if (event.keyCode == 38) {
            if (cus < 1) {
                cus = listsize - 1;
                $(".autocomplete li").removeClass();
                $(".autocomplete li").eq(cus).addClass("hovers");
                var text = $(".autocomplete li").eq(cus).text();
                $("#box4").val(text)
            } else {
                cus--;
                $(".autocomplete li").removeClass();
                $(".autocomplete li").eq(cus).addClass("hovers");
                var text = $(".autocomplete li").eq(cus).text();
                $("#box4").val(text)
            }
        }
        if (event.keyCode == 40) {
            if (cus < (listsize - 1)) {
                cus++;
                $(".autocomplete li").removeClass();
                $(".autocomplete li").eq(cus).addClass("hovers");
                var text = $(".autocomplete li").eq(cus).text();
                $("#box4").val(text)
            } else {
                cus = 0;
                $(".autocomplete li").removeClass();
                $(".autocomplete li").eq(cus).addClass("hovers");
                var text = $(".autocomplete li").eq(cus).text();
                $("#box4").val(text)
            }
        }
        if (event.keyCode == 13) {
            $(".autocomplete li").removeClass();
            $("#HTML").html("你选择的是<font color='red'>" + $(".autocomplete li").eq(cus).text()+"</font>");
            $autocomplete.hide();
 
        }
    }).blur(function() {
        setTimeout(function() {
            $autocomplete.hide()
        },
        3000)
    })
});
function setValue(index) {
    var ddl = document.getElementById("hoho");
    var Value = ddl.options[index].text;
    document.getElementById("box4").value = Value
    $("#HTML").html("你选择的是<font color='red'>" +Value+"</font>");
}

 

 

 

.hoho{width:197;height:20px!important; height:17px;margin-left:-180px!important; margin-left:-179px}
.sp{margin-left:179px;width:18px;overflow:hidden; }
.bo4{width:178px;position:absolute;left:0px!important;height:20px!important;top:0.5px!important; left:1px; top:0px; height:20px}
.autocomplete{list-style-type:none; margin:0px; padding:0px; border:#008080 1px solid }
.autocomplete li{font-size:12px; font-family:"Lucida Console", Monaco, monospace; font-weight:bold; cursor:pointer; height:20px; line-height:20px}
.hovers{ background-color:#3368c4; color:fff}

 

 

<table width="440" border="0" align="center">
  <tr>
    <td><div style="position:relative;">   
      <span  class="sp">   
            <select id="hoho" name="hoho"  class="hoho" onChange="setValue(this.selectedIndex)" >
            	  <option> ===请选择===</option>
                  <option value='0' >Java EE</option>
                  <option value='1' >Java SE</option>
                  <option value='2' >Java ME</option>
                  <option value='3' >Net</option>
                  <option value='4' >PHP</option>
                  <option value='5' >Ajax</option>
                  <option value='6' >JQuer</option>
             </select>
             
     </span>
     <input name="box4" id="box4" value="===请选择==="  class="bo4" >   
</div>
	</td>
    <td id="HTML" width="350">输入A试试</td>
  </tr>
</table>

 

分享到:
评论

相关推荐

    下拉框可输入+自动提示+支持键盘事件兼容IE,FF

    标题 "下拉框可输入+自动提示+支持键盘事件兼容IE,FF" 指的是一种前端开发技术,用于创建具有智能搜索和自动提示功能的下拉选择框。这种技术通常应用于网页表单中,提高用户输入数据的效率和体验。在描述中提到的 ...

    可以输入带自动匹配的下拉框

    在IT行业中,创建一个“可以输入带自动匹配的下拉框”是常见的需求,尤其在网页交互设计中。这样的功能通常被称作自动补全(AutoComplete)或智能搜索框,它极大地提升了用户输入数据的效率和用户体验。下面将详细...

    【C#】完美实现ComBox多列下拉框+自动完成+DataGridView自定义列

    灵活:数据源、下拉框内显示的列、列名、可搜索关键字等可自由定义 方便:可输可选/支持键盘操作/模糊过滤/自动完成匹配 标准:通过继承combobox实现,可单独使用,也可嵌入datagridview使用 感谢“随风飘散”

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

    2. **JavaScript/jQuery处理**:使用JavaScript或jQuery监听用户的输入事件,如键盘按下、失去焦点等,以便在输入和选择之间切换显示。同时,要处理下拉框的选项选择事件,确保当选中一个选项时,文本框的值与选中的...

    基于jquery带搜索功能的下拉框,兼容IE5/6/7/8/9/10

    本文将深入探讨一个基于jQuery的具有搜索功能的下拉框组件,该组件兼容广泛的Internet Explorer浏览器,包括IE5到IE10,但不支持较新的Edge浏览器。 首先,让我们了解下拉框(Dropdown)的基本概念。在网页设计中,...

    下拉框可输入模糊查询,自动匹配

    然而,随着用户体验需求的提升,传统的静态下拉框已经不能满足所有场景,因此出现了“下拉框可输入模糊查询,自动匹配”的功能。这个功能使得用户在下拉框中输入文字时,系统能实时进行模糊匹配,显示与输入内容相关...

    移动端自定义下拉框【H5+js+css】

    在移动端开发中,自定义下拉框是一种常见的交互设计,它可以提供更好的用户体验,尤其是在空间有限的手机屏幕上。本文将深入探讨如何使用H5(HTML5)、JavaScript和CSS来实现一个自定义的下拉框。 首先,HTML5是...

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

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

    【ASP.NET编程知识】ASP .NET 可编辑输入自动匹配的下拉框.docx

    ASP.NET 可编辑输入自动匹配的下拉框 本文将详细介绍 ASP.NET 可编辑输入自动匹配的下拉框的实现方法,该控件可以自动匹配用户输入的内容,并提供相关的下拉选项。本文将从三个方面介绍该控件的实现方法:首先,...

    多选下拉框(JS+DIV)

    例如,可以为多选下拉框对象添加新的方法来支持搜索功能,或者修改其属性来改变选项的显示方式。 具体实现时,我们可能会创建一个名为`DropdownBox`的构造函数,用于初始化多选下拉框对象。这个构造函数可以接受...

    支持手动输入的下拉框

    在IT界,尤其是在前端开发中,“支持手动输入的下拉框”是一种常见的用户界面元素,它结合了传统下拉选择框的功能与文本输入框的优势,为用户提供更灵活、高效的交互体验。这种组件通常被称为“自动补全”或“类型...

    搜索下拉框自动提示、智能提示

    在IT行业中,用户界面(UI)的交互设计是至关重要的,而“搜索下拉框自动提示”或“智能提示”正是提升用户体验的关键元素之一。这种功能常见于许多网站和应用程序的搜索栏,它能帮助用户更快地找到他们想要的信息,...

    自动匹配可输入的下拉框

    在IT领域,"自动匹配可输入的下拉框"是一种常见的用户界面元素,它结合了传统的下拉选择框和搜索框的功能,提高了用户体验。这种组件通常被称为“智能下拉框”或“自动补全下拉框”。在网页设计、应用程序开发,尤其...

    省市二级连动下拉框(JS+XML)

    1. **使用 ActiveXObject 实例化 XMLDOM**:为了兼容IE浏览器,这里使用了 `new ActiveXObject("Microsoft.XMLDOM")` 来创建XMLDOM对象。这种方法在现代浏览器中不推荐使用,应该改为使用 `XMLHttpRequest` 或者 `...

    自动补全下拉框(可输入匹配的下拉框)

    在IT领域,自动补全下拉框是一种常见的用户体验优化功能,广泛应用于各种Web应用程序和桌面软件中。这种功能允许用户在输入时从预定义的选项列表中选择,提高输入效率和准确性。本篇将深入探讨自动补全下拉框的工作...

    批量添加数据的表单界面(表单含树形下拉框)vue + element

    在这个表单界面中,每个输入控件,如树形下拉框,都可以视为一个自定义的Vue组件。创建组件时,我们需要定义它的模板(template)、数据(data)、方法(methods)以及可能的计算属性(computed)等。 Element UI是...

    Winform实现下拉框自动提示

    本文将详细介绍如何在C#的Winform环境下,利用下拉框控件实现按输入字符自动查找并提示的功能。 首先,我们需要了解`ComboBox`控件的基本用法。`ComboBox`控件在Winform中通常用于显示一组可选项,用户可以通过点击...

    jquery实现下拉框多选(支持IE7)

    本篇文章将深入探讨如何使用jQuery和EasyUI框架来实现一个支持多选功能的下拉框,特别关注对IE7及360浏览器的兼容性。 首先,我们需要了解jQuery的核心概念。jQuery通过简洁的API提供了对JavaScript对象的封装,...

    jquery下拉框集成搜索功能

    在实际应用中,为了优化用户体验,我们可能还需要添加一些额外的功能,比如自动补全、延迟搜索(debounce)以减少不必要的计算,或者在没有匹配项时显示提示信息。此外,对于大数据集,可以考虑使用虚拟滚动或分页来...

    ajax 自动提示ajax 自动提示含有下拉框

    标题中的“Ajax自动提示”指的是在网页中使用Ajax技术实现的一种动态输入提示功能。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术通常用于提升...

Global site tag (gtag.js) - Google Analytics