最近在做航运运价平台,有一个业务逻辑是需要在搜索的时候有搜索提示的,没法子,没写过,在找了很久解决方案还没有找到,快崩溃了的时候,忽然发现了jquery UI 的自动补全机制,完全符合啊,大救星。

首先描述下用户的需求,这里我们需要的是输入港口的英文名称或中文名称,然后出现搜索提示,当用户点击后,只将英文的放入搜索框中,因为运价里的港口都是英文字符,没有中文字符。

所以,我需要做的就是:1.将港口全部录入数据库 2.在用户输入的时候显示搜索提示 3.用户点击后显示英文字符。

OK,逻辑很清晰,开始动工。

数据输入数据库,这一步就不赘述了。

搜索提示的时候,用的是JQueryUI的自动补全机制

1. 对我们的输入表单应用自动补全。

$('#startport').autocomplete(option);

2. 从服务器端获取数据源,我这里应用ajax异步请求数据

/**************数据源为ajax返回的值**********************/source: function(request, callback) {var data = "term=" + request.term;$('#result').html(data);/*************ajax请求数据************************/$.get(appPath + "/Street/startportSearchTips", data, function(data) { var response = data.content;var tips = [];$(response).filter('li').each(function() {tips.push($(this).text());});callback(tips);});},

服务器端:

$querystring = $_GET['term'];  if(strlen($querystring) >0) { $condition['portname'] = array('like', "%$querystring%");$result = $startDB->where($condition)->limit(5)->select();$data['status'] = 0;foreach($result as $key => $value){$data['content'] .= '<li>'.$value['portname'].'</li>'; }  $data['term'] = $_GET['term'];$this->ajaxReturn($data);}else{$data = array('status' => 0, 'content' => '没有匹配');$data['test'] = "没有匹配";$data['term'] = $_GET['term'];$this->ajaxReturn($data); }  

当服务器检索到数据后,按格式用ajax返回,然后在js里面接收,再转变成数组的形式,用回调函数返回给source,作为数据源

3. 让建议列表更好看点,设置下样式,这里是淡出的特效

/****************打开建议列表时的样式设置***************************/open:function(event){var $ul = $(this).autocomplete('widget');$ul.css('width', '200px');$ul.css('font-size', '14px');$ul.css('font-family', '微软雅黑');$ul.hide().slideDown(1000);},

4. 最后一步,选择某一项时,只上去英文字符,因为数据库中是间隔空格分开的,所以这里用空格截取

/****************在选择某一项的时候,只显示英文字符*****************/select: function(event, ui) {//截取英文字符var str = ui.item.value.substr(0, ui.item.value.indexOf(' '));return ui.item.value = str;}

最后的效果:

可以去我们的网站看看:《订单工厂》搜索提示演示

Tony, 2014.10.13 于TCS工作室

JQueryUI自动补全 搜索提示实践相关推荐

  1. Visual Assist x 无法自动补全Snippet提示的解决方法

    Visual Assist x 无法自动补全Snippet提示的解决方法 参考文章: (1)Visual Assist x 无法自动补全Snippet提示的解决方法 (2)https://www.cn ...

  2. vs代码自动补全快捷键html,VSCode 自动补全(智能提示)

    自动补全(智能提示) 由于以前微软推出了typescript语言,结合tsd文件,用visual studio写typescript代码是至关爽的,智能提示的功能很是nb.html 这个功能理所应当也 ...

  3. vim代码自动补全函数提示设置

    vim中不能代码补全让人感觉很不爽,以下配置就是进行代码补全的,虽然功能没有windows下IDE功能强大,但是也足够用了. 需要插件为:neocomplcache,OmniCppComplete,A ...

  4. pycharm 自动补全代码提示前符号f,m , p,c,v是什么意思?

    是自动补全的变量的类别 f:function 函数 p:parameter 参数 m:method 方法 c:class 类 v:variable 变量

  5. Elasticsearch 分布式搜索引擎 -- 自动补全(拼音分词器、自定义分词器、自动补全查询、实现搜索框自动补全)

    文章目录 1. 自动补全 1.1 拼音分词器 1.2.1 自定义分词器 1.2.2 小结 1.2 自动补全 1.3 实现酒店搜索框自动补全 1.3.1 修改酒店映射结构 1.3.2 修改HotelDo ...

  6. vscode 取消按左括号,自动补全提示代码

    1.问题 你是否在使用 vsCode的时,输入一个函数,按了括号之后,会自动补全成提示的那个函数,但是那个函数并不是我们想输入的: 2.解决 我们可以在vscode的设置中进行设置 我们搜索:acce ...

  7. 华为快应用IDE:代码智能提示及自动补全

    代码编辑工具的代码智能提示/自动补全功能几乎是所有代码编写工具具备的基础功能. 华为快应用IDE自然不能少了如此便利的功能,Template模板.Script脚本.Style样式.Pair-Tages ...

  8. 转:Eclipse自动补全功能轻松设置

    Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02|  分类: Java |  标签:eclipse  自动补全  设置  |举报|字号 订阅 下 ...

  9. Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件

    本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框.   Eclipse代码自动补全功能默认只包括 点"."  ,即只有输入".& ...

最新文章

  1. python比java简单好学-python和java哪个学起来更简单
  2. 需求分析与建模最佳实践_社交媒体和主题建模:如何在实践中分析帖子
  3. 数据库班级字段怎么定义名称_班级名称
  4. pom.xml 配置之:snapshot 快照库和 release发布库 的区别
  5. 04号团队-团队任务3:每日立会(2018-12-04)
  6. 网关在链路上什么意思_银行卡上的数字都什么意思
  7. 轻量级网页安全漏洞扫描工具-Wapiti
  8. 计算机二十四点游戏怎么玩,扑克牌二十四点怎么玩?扑克牌二十四点游戏规则介绍...
  9. win的反义词_单词还死记硬背?反义词法让孩子轻松记单词!
  10. sql-server(模式创建)
  11. 操作ADS1115进行4个通道AD值的读取
  12. 2020ICPC 昆明热身赛 C.Statues(小思维)
  13. 来自朋友圈的“精神食粮”
  14. 使用Excel对国外B2B电商平台进行描述性数据分析
  15. [乐意黎原创] JavaScript中数组使用总结
  16. eyoumailserver邮箱服务器与foxmail 邮箱客户端的使用和安装
  17. 【12-06】A股主要指数的市盈率(PE)估值高度
  18. 【源码课件+名师讲解】Java优质课程分享
  19. python统计分析pdf下载_Python金融大数据分析PDF高清文档下载
  20. verdi直接打开list文件

热门文章

  1. 软件测试工程师面试的时候该怎么样介绍自己?
  2. 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
  3. imac下修改本地hosts文件解决react项目中的跨域问题
  4. python多线程爬取妹子图
  5. 零基础学python_03_字符串(拼接+换行+制表符)
  6. 英语口语学习推荐的21部电影
  7. xboxone硬盘坏的表现_硬盘或移动硬盘认不到时,应该怎样进行故障的检测才正确...
  8. 【系统收藏——中天证券创鑫软件 官方版 [同时支持三板、港股行情、沪深300指数。]】
  9. deepin 安装git
  10. 为什么打开edge浏览器,就出来qq导航,hao123页面等等!