Jquery实现类似百度的搜索框
生活随笔
收集整理的這篇文章主要介紹了
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-\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用于搜索匹配的結果,一般可異步請求也可同步請求。
?
轉載于:https://www.cnblogs.com/manliu/p/5152672.html
總結
以上是生活随笔為你收集整理的Jquery实现类似百度的搜索框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js ajax上传图片到服务器
- 下一篇: 2016年第2本:选择的悖论