基于jquery的自动补全

简介: 写个简单的自动补全,供学习的朋友参考,希望对大家所有帮助需要先引入jquery,注意自己的引入路径<script type="text/javascript" src="js/jquery.min.js"></script><input id="chooseCity" type="text" placeholder="输入城市

写个简单的自动补全,供学习的朋友参考,希望对大家所有帮助


需要先引入jquery,注意自己的引入路径

<script type="text/javascript" src="js/jquery.min.js"></script>

<input  id="chooseCity" type="text" placeholder="输入城市查询">

页面初始化时调用下下面方法即可,传两个参数,一个元素id跟数据

$(function(){
    var data = ['七里香','站长素材','HTML5特效','wshlfx.com',47,'你在哪','去哪啊'];//所有数据

    searchCityLoad("chooseCity",data);//调用初始化方法  chooseCity是input元素id, data是数据,
});

这里是初始化元素的方法,用时只需要调用改方法即可,
参数一 eleId 表示元素id
参数二 arr表示数据

这里的值只有一个,有些需要几个值的,比如显示值跟选择值等,不同需求的话也可根据修改

//========初始化开始========
    function searchCityLoad(eleId,arr){

    //如果需要动态改变的话,
    //每次执行前可以先移除事件
    //$("#"+eleId).unbind();

        //绑定事件
        $("#"+eleId).bind('input propertychange',function(){

            $("#"+eleId).after('<div style="position:absolute;z-index:9;overflow:hidden;border: 1px solid #cccccc;border-bottom:0;border-top:0;" ></div>');
                            $("#"+eleId).next('div').width($("#"+eleId).outerWidth()-2);//设置元素宽度
$("#"+eleId).next('div').css({"margin-left":$("#"+eleId).css("margin-left")});//设置元素边距

            var arrNew = [];
            var i;
            for(i=0;i<arr.length;i++){
                var arrItems=arr[i];
                //判断元素是否存在于arrNew中,
                //如果不存在则插入到arrNew的最后
                if($.inArray(arrItems,arrNew)==-1) {
                    arrNew.push(arrItems);                                                  
                }
            }

            //这是将input中输入的数据有关联的全部加入新生成的div中显示出来
            for(i=0;i<arrNew.length;i++){
                var arrWord = arrNew[i].toString();
                if(((arrWord.indexOf($("#"+eleId).val())) > -1) && ($("#"+eleId).val().length > 0)){
                    var addArrWord = '<div class="auto-screening-zms" style="cursor:pointer;width:100%;height:30px;line-height:30px;border-bottom:1px solid #cccccc;background:#ffffff;padding: 0 10px;">' + arrWord + "</div>";
                    $("#"+eleId).next('div').append(addArrWord);
                }
            }

            /*将显示出来的div的内容去重复,input内容变动时去重复*/
            $(".auto-screening-zms").each(function(){
                if($(this).text().indexOf($("#"+eleId).val()) < 0){
                    $(this).remove();
                }else if($("#"+eleId).val().length == 0){
                    $("#"+eleId).next('div').addClass("auto-hidden");
                    $(".auto-screening-zms").remove();
                }
            }); 

            /*弹出的提示div去重复*/
            $(".auto-screening-zms").each(function(i, iText){
                var iTextHtml = iText.innerHTML;
                $(".auto-screening-zms").each(function(j, jText){
                    var jTextHtml = jText.innerHTML;
                    if (i < j && iTextHtml == jTextHtml) {
                        $(this).remove();
                    }
                });
            }); 

            //元素悬停事件,设置悬停样式
            $(".auto-screening-zms").hover(function(){
                $(this).css("background","#cccccc");
            },function(){
                $(this).css("background","#ffffff");
            });

            /*点击下拉元素传值*/
            $(".auto-screening-zms").on("click",function(){
                $("#"+eleId).val($(this).text());
                $(".auto-screening-zms").remove();
            })              
        })
    }
    //========初始化结束========
目录
相关文章
|
JavaScript 前端开发
《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.2 技巧:使用自动补全微件提示输入值
在一些网站上,你可以找到用于选择的下拉菜单,它们包含了极长的选项列表。在许多情况下,可以使用具有自动补全功能的输入框取代下拉式菜单来帮助用户。省去了滚动选择,用户只要输入目标选项的第一个字符,然后自动补全组件便可以完成剩下的事。
1870 0
|
前端开发 JavaScript Python
使用JQUERY的flexselect插件来实现将SELECT下拉菜单变成自动补全输入框
这也是下拉列表太长了之后,使用的同事提出来的意见, 然后,本来开始想将DJANGO的那个后台下拉菜单移植过来的,但发现不现实,也麻烦, 就找了几个JQUERY的插件测试了一下,最后选中了flexselect。
1478 0
|
Web App开发 JavaScript 前端开发
jquery插件整理篇(四)自动补全类插件
(1)AutoComplete-JQueryjQuery插件易于集成到现在的表单中(Form)。 (2)Facebook like Autocomplete 基于jQuery开发,类似于FaceBoox提供的AutoCompleter。
955 0
|
Web App开发 JavaScript 前端开发
jquery插件整理篇(四)自动补全类插件
(1)AutoComplete-JQueryjQuery插件易于集成到现在的表单中(Form)。 (2)Facebook like Autocomplete 基于jQuery开发,类似于FaceBoox提供的AutoCompleter。
960 0
|
1月前
jQuery+Slick插件实现游戏人物轮播展示切换源码
jQuery+Slick插件实现游戏人物轮播展示切换源码
44 14
|
2月前
|
JavaScript 前端开发
jQuery和CSS3滑动展开菜单按钮插件
这是一款jQuery和CSS3滑动展开菜单按钮插件。该滑动展开菜单按钮在用户点击主菜单按钮之后,子菜单以滑动的方式依次展开
75 21
|
2月前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
82 16
|
2月前
|
JavaScript
jquery文字动画特效插件animatext
jquery文字动画特效插件animatext
73 9