首頁  >  文章  >  web前端  >  jquery實作類似百度的搜尋框

jquery實作類似百度的搜尋框

小云云
小云云原創
2017-12-04 10:42:033007瀏覽

作為一名開發人員,在開發網站的時候搜尋框也是必不可少的一項功能,最近工作中需要做一個搜尋框,類似百度的搜尋框,本文我們就和大家分享關於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 = [&#39;百度1&#39;, &#39;百度2&#39;, &#39;百度3&#39;, &#39;百度4&#39;, &#39;百度5&#39;, &#39;百度6&#39;, &#39;百度7&#39;,&#39;17素材网&#39;,&#39;百度&#39;,&#39;新浪&#39;];
$(document).ready(function(){
    $(&#39;#search-form&#39;).complete({
        searchIn:function(val){//传入输入值,返回匹配值
            /* var reg = /^[\u4F00-\u9FA5\uF900-\uFA2D]/;
            return reg.test(val); */
            var word = "^"+val+".*";
            var rs = [];
            $.each(proposals,function(i,n){
                if(n.match(word)){
                    rs.push(n);
                }
            });
            return rs;
        },
        width:400,
        height: 30,
        submitIn: function(text){//搜索选定的值
            alert(text);        
        }
    });
});
</script>

這裡searchIn方法用於傳回符合項,通常在裡面定義一個非同步請求,向後台取數據,傳回一個數組,對於複雜的還需要修改源碼;submitIn用於搜尋匹配的結果,一般可異步請求也可同步請求。

以上內容就是關於query實作類似百度的搜尋框的教程,希望能幫助大家。

相關推薦:

css製作好看的搜尋框

#如何用Js實作百度搜尋框提示功能

JavaScript實作仿優酷搜尋方塊

以上是jquery實作類似百度的搜尋框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn