zoukankan      html  css  js  c++  java
  • Jquery实现类似百度的搜索框

      最近工作中需要做一个搜索框,类似百度的搜索框,需要达到两个功能:

      1.输入关键字,展示匹配的下拉列表

      2.选择匹配的项后查出相关内容

      一般电商网站中也经常用到该搜索条,首先分析功能实现,输入关键字马上显示匹配项列表,实现该功能输入框需要绑定"input"事件,然后向后台发送异步请求,将数据展示在页面上。使用鼠标或上下键选择匹配项,点击搜索或"Enter"键后搜索具体结果。这里要用到两个异步请求,第一个请求匹配项,第二个请求搜索结果。键盘,鼠标以及输入框的事件都要监听到,还必须考虑到灵活性,也就是适应各种类似需求,想做好还是有一些难度的,下面分布进行实现。

    一.html和css

    <body>
        <div id="search-form"></div>
    </body>
    <style type="text/css">
        *{margin: 0;padding: 0;list-style:none;border:none;}
        body {
            font-family: "microsoft yahei" !important;
            background-color: #FDFFE0;
        }
        :focus {
            outline: none;
        }
        #search-form {
            position: relative;
            top: 50px;
            display: inline;
        }
    </style>

    二.导入css和js文件

    由于博客上传不了文件,可以去我的git:http://git.oschina.net/manliu.com/search_frame上有完整的项目文件

    三.页面引用js

    <script type="text/javascript">
    var proposals = ['百度1', '百度2', '百度3', '百度4', '百度5', '百度6', '百度7','17素材网','百度','新浪'];
    
    $(document).ready(function(){
        $('#search-form').complete({
            searchIn:function(val){//传入输入值,返回匹配值
                /* var reg = /^[u4F00-u9FA5uF900-uFA2D]/;
                return reg.test(val); */
                var word = "^"+val+".*";
                var rs = [];
                $.each(proposals,function(i,n){
                    if(n.match(word)){
                        rs.push(n);
                    }
                });
                return rs;
            },
            400,
            height: 30,
            submitIn: function(text){//搜索选定的值
                alert(text);        
            }
        });
    });
    </script>

    这里searchIn方法用于返回匹配项,通常在里面定义一个异步请求,向后台取数据,返回一个数组,对于复杂的还需要修改源码;submitIn用于搜索匹配的结果,一般可异步请求也可同步请求。
  • 相关阅读:
    ESP8266简单几步建立服务器
    SVM推导
    标准的最大margin问题
    switch用法
    vecor预分配内存溢出2
    vector预分配空间溢出
    [面试编程题]算法基础-字符移位
    [面试编程题1]构造回文
    一天学完UFLDL
    神经网络中的XOR问题
  • 原文地址:https://www.cnblogs.com/manliu/p/5152672.html
Copyright © 2011-2022 走看看