搜索框关键字智能匹配实例代码实例

搜索框关键字智能匹配实例代码实例:
只要使用搜索引擎的朋友应该都有这样的体会,就是当在搜索框输入关键字的时候,会出现自能匹配现象,这绝对是非常好的用户体验,下面就是一段类似的代码,当然这里只是掩饰,所以只能匹配的数据都是本地固定好的,在实际应用中可以才能够数据库读取数据。
代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>搜索框关键字智能匹配实例代码-蚂蚁部落</title>
<style>
body, ul, li
{
  margin:0;
  padding:0;
}
body
{
  font-size:12px;
  font-family:sumsun, arial;
  background:#FFFFFF;
}
.gover_search
{
  position:relative;
  z-index:99;
  height:63px;
  padding:15px 0 0 20px;
  border:1px solid #b8cfe6;
  border-bottom:0;
  background:url(../images/gover_search_bg.gif) repeat-x 0 0;
}
.gover_search_form {height:36px;}
.gover_search .search_t
{
  float:left;
  width:112px;
  line-height:26px;
  color:#666;
}
.gover_search .input_search_key
{
  float:left;
  width:462px;
  height:18px;
  padding:3px;
  margin-right:5px;
  border:1px solid #ccc;
  line-height:18px;
  background:#fff;
}
.gover_search .search_btn
{
  float:left;
  width:68px;
  height:26px;
  overflow:hidden;
  border:1px solid #ccc;
  text-align:center;
  color:#ff3300;
  letter-spacing:5px;
  background:url(../images/gover_search_bg.gif) no-repeat 0 -79px;
  cursor:pointer;
  font-weight:bold;
}
.gover_search .search_suggest
{
  position:absolute;
  z-index:999;
  left:132px;
  top:41px;
  width:468px;
  border:1px solid #ccc;
  border-top:none;
  display:none;
  color:#004080;
}
.gover_search .search_suggest li
{
  height:24px;
  overflow:hidden;
  padding-left:3px;
  line-height:24px;
  background:#fff;
  cursor:default;
}
.gover_search .search_suggest li.hover {background:#ddd;}
.num_right
{
  float:right;
  text-align:right;
  line-height:24px;
  padding-right:10px
}
</style>
</head>
<body>
<div class="gover_search">
  <div class="gover_search_form clearfix">
    <span class="search_t">关键词匹配搜索</span>
    <input type="text" class="input_search_key" id="gover_search_key" placeholder="请输入关键词直接搜索" />
    <button type="submit" class="search_btn">搜索</button>
    <div class="search_suggest" id="gov_search_suggest">
      <ul>
      </ul>
    </div>
  </div>
</div>
<script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
function oSearchSuggest(searchFuc)
{
  var input = $(‘#gover_search_key‘);
  var suggestWrap = $(‘#gov_search_suggest‘);
  var key = "";
  var init = function(){
    input.bind(‘keyup‘,sendKeyWord);
    input.bind(‘blur‘,function(){setTimeout(hideSuggest,100);})
  }
  var hideSuggest = function(){
    suggestWrap.hide();
  }
  //发送请求,根据关键字到后台查询
  var sendKeyWord = function(event){
    //键盘选择下拉项
    if(suggestWrap.css(‘display‘)==‘block‘&&event.keyCode == 38||event.keyCode == 40)
    {
      var current = suggestWrap.find(‘li.hover‘);
      if(event.keyCode == 38)
      {
        if(current.length>0)
        {
          var prevLi = current.removeClass(‘hover‘).prev();
          if(prevLi.length>0)
          {
            prevLi.addClass(‘hover‘);
            input.val(prevLi.html());
          }
        }
        else
        {
          var last = suggestWrap.find(‘li:last‘);
          last.addClass(‘hover‘);
          input.val(last.html());
        }
      }
      else if(event.keyCode == 40)
      {
        if(current.length>0)
        {
          var nextLi = current.removeClass(‘hover‘).next();
          if(nextLi.length>0)
          {
            nextLi.addClass(‘hover‘);
            input.val(nextLi.html());
          }
        }
        else
        {
          var first = suggestWrap.find(‘li:first‘);
          first.addClass(‘hover‘);
          input.val(first.html());
        }
      }
      //输入字符
    }
    else
    {
      var valText = $.trim(input.val());
      if(valText ==‘‘||valText==key)
      {
        return;
      }
      searchFuc(valText);
      key = valText;
    }
  }
  //请求返回后,执行数据展示
  this.dataDisplay = function(data){
    if(data.length<=0)
    {
      suggestWrap.hide();
      return;
    }
    //往搜索框下拉建议显示栏中添加条目并显示
    var li;
    var tmpFrag = document.createDocumentFragment();
    suggestWrap.find(‘ul‘).html(‘‘);
    for(var i=0; i<data.length; i++)
    {
      li = document.createElement(‘LI‘);
      li.innerHTML = data[i];
      tmpFrag.appendChild(li);
    }
    suggestWrap.find(‘ul‘).append(tmpFrag);
    suggestWrap.show();
    //为下拉选项绑定鼠标事件
    suggestWrap.find(‘li‘).hover(function(){
      suggestWrap.find(‘li‘).removeClass(‘hover‘);
      $(this).addClass(‘hover‘);
    },function(){
      $(this).removeClass(‘hover‘);
    }).bind(‘click‘,function(){
      $(this).find("span").remove();
      input.val(this.innerHTML);
      suggestWrap.hide();
    });
  }
  init();
};
//实例化输入提示的JS,参数为进行查询操作时要调用的函数名
var searchSuggest = new oSearchSuggest(sendKeyWordToBack);
//这是一个模似函数,实现向后台发送ajax查询请求,并返回一个查询结果数据,传递给前台的JS,再由前台JS来展示数据。本函数由程序员进行修改实现查询的请求
//参数为一个字符串,是搜索输入框中当前的内容
function sendKeyWordToBack(keyword){
  var aData = [];
  aData.push(‘<span class="num_right">约100个</span>‘+keyword+‘返回数据1‘);
  aData.push(‘<span class="num_right">约200个</span>‘+keyword+‘返回数据2‘);
  aData.push(‘<span class="num_right">约100个</span>‘+keyword+‘返回数据3‘);
  aData.push(‘<span class="num_right">约50000个</span>‘+keyword+‘返回数据4‘);
  aData.push(‘<span class="num_right">约1044个</span>‘+keyword+‘2012是真的‘);
  aData.push(‘<span class="num_right">约100个</span>‘+keyword+‘2012是假的‘);
  aData.push(‘<span class="num_right">约100个</span>‘+keyword+‘2012是真的‘);
  aData.push(‘<span class="num_right">约100个</span>‘+keyword+‘2012是假的‘);
  //将返回的数据传递给实现搜索输入框的输入提示js类
  searchSuggest.dataDisplay(aData);
}
</script>
</body>
</html>

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9342

更多内容可以参阅:http://www.softwhy.com/jquery/

时间: 2024-12-18 05:33:12

搜索框关键字智能匹配实例代码实例的相关文章

css实现的文本框focus获取焦点设置样式代码实例

css实现的文本框focus获取焦点设置样式代码实例:文本框获取焦点然后设置它的css样式通常可以使用javascript代码.具体可以参阅javascript实现的文本框获取焦点设置其样式代码一章节.其实使用纯css也能够实现此功能,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=

规定文本框只能够输入整数代码实例

规定文本框只能够输入整数代码实例:有时候可能需要规定文本框内容只能够输入整数,下面给出一段能够实现此功能的代码实例,供需要的朋友参考.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>

美团搜索-搜索引擎关键字智能提示的一种实现[转]

http://tech.meituan.com/pinyin-suggest.html --------------------------------------------------------------------- 快照: 问题背景 搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户搜索体验. 美团CRM系统中存在数以百万计的商家,为了让用户快速查找到目标商家,我们基于solrcloud实现了商家搜索模块.用户在查找商

使用fcbkcomplete实现PHP标签智能匹配功能

要写一个简单的CMS,里面涉及文章标签,索性用了fcbkcomplete下拉框自动完成插件竟实现了标签智能匹配输入的效果,先来看测试图吧: 在线演示效果:http://www.srcfans.com/demo/autocomplete/ 完整的源码,你可以在这里下载:PHP jQuery json搜索框输入.标签输入提示实例

模拟百度搜索框

在使用百度搜索是,页面会根据我们输入的内容自动匹配一些候选内容. 实现的主要过程主要是: 1.用户在输入一个字符结束后,在onkeyup事件中获取用户输入的内容. 2.根据获取到的内容向服务器发送请求,匹配到相似的数据,存到数组中. 3.判断数组是否有内容,如果有数据,就在搜索框下面遍历匹配到的内容(候选项). 首先,要写好页面布局 html部分 <html> <head> <meta http-equiv="Content-Type" content=&

如何让你的搜索框设计“一鸣惊人”

许多人可能认为搜索框不需要设计; 毕竟这只是两个简单的元素.然而,在内容繁杂的网站中,搜索框通常是最常用的设计元素.当用户遇到相对复杂的网站时,他们会立即寻找搜索框,已到达到最终目的.搜索框的设计及其可用性就显得尤为重要. 两种类型   1.即时搜索: 结果立即显示在用户界面上,不需要按钮,放大镜仅显示为一个图标,输入时立即搜索 2.常规搜索: 通过用户点击搜索按钮后才开始执行搜索 何时使用   1.目标对象很难找到时 a) 对象很多时:如从Mockplus的图标库中需要找到某个图标时. b)

向DataGrid数据表格增加查询搜索框

向DataGrid数据表格增加查询搜索框 效果如下: js代码: $(function(){ var dg = $('#dg').datagrid({ url:"${pageContext.request.contextPath}/OfferServlet",//servlet路径 columns:[[ {field:'offerid',title:'商品ID',width:100}, {field:'offername',title:'商品名称',width:100}, {field

将搜索关键字设置为高亮显示实例代码

将搜索关键字设置为高亮显示实例代码:搜索关键词以高亮状态呈现是一种比较人性化的举措,例如百度或者本站都有这样的功能,可以极大的提高辨识度,下面就通过代码实例介绍一下如何实现此功能.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/

搜索框带有搜索提示点击消失代码实例

搜索框带有搜索提示点击消失代码实例: 搜索框大家一定都不陌生,因为随时都可以用到,比较人性化的搜索框都有这样的效果,默认情况有搜索提示,点击搜索框,提示内容消失,下面就通过代码实例介绍一下如何实现此功能. 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.5