1. 原文链接:http://blog.csdn.net/leeyue_1982/article/details/48950123#
  2. <!DOCTYPE html>
  3. <html lang="zh-cn">
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Bootstrap 搜索建议插件</title>
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <meta name="description" content="这是一个基于 bootstrap 按钮式下拉菜单组件的搜索建议插件">
  9. <meta name="Keywords" content="Bootstrap Search Suggest,bootstrap,搜索建议插件"/>
  10. <meta name="author" content="lizhiwen@meizu.com">
  11. <link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
  12. </head>
  13. <body>
  14. <div class="container">
  15. <h2>bootstrap combox 搜索建议插件</h2>
  16. <p>这是一个基于 bootstrap 按钮式下拉菜单组件的搜索建议插件.</p>
  17. <p>使用说明:<a href="README.html" target="_blank">README.html</a> <a href="https://github.com/lzwme/bootstrap-suggest-plugin" target="_blank">Github</a></p>
  18. <form action="index_submit" method="get" accept-charset="utf-8" role="form">
  19. <h3>测试(URL 获取)</h3>
  20. <p>配置了 data-id,非下拉菜单选择输入则背景色警告。</p>
  21. <div class="row">
  22. <div class="col-lg-2">
  23. <div class="input-group">
  24. <input type="text" class="form-control" id="test">
  25. <div class="input-group-btn">
  26. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  27. <span class="caret"></span>
  28. </button>
  29. <ul class="dropdown-menu dropdown-menu-right" role="menu">
  30. </ul>
  31. </div>
  32. <!-- /btn-group -->
  33. </div>
  34. </div>
  35. </div>
  36. <h3>测试(URL 获取)</h3>
  37. <p>不展示下拉菜单按钮。</p>
  38. <div class="row">
  39. <div class="col-lg-6">
  40. <div class="input-group">
  41. <input type="text" class="form-control" id="testNoBtn">
  42. <div class="input-group-btn">
  43. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  44. <span class="caret"></span>
  45. </button>
  46. <ul class="dropdown-menu dropdown-menu-right" role="menu">
  47. </ul>
  48. </div>
  49. <!-- /btn-group -->
  50. </div>
  51. </div>
  52. </div>
  53. <h3>测试(json 数据中获取)</h3>
  54. <p>默认启用空关键字检索。</p>
  55. <div class="row">
  56. <div class="col-lg-6">
  57. <div class="input-group">
  58. <input type="text" class="form-control" id="test_data">
  59. <div class="input-group-btn">
  60. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  61. <span class="caret"></span>
  62. </button>
  63. <ul class="dropdown-menu dropdown-menu-right" role="menu">
  64. </ul>
  65. </div>
  66. <!-- /btn-group -->
  67. </div>
  68. </div>
  69. </div>
  70. <h3>百度搜索</h3>
  71. <p>支持逗号分隔多关键字</p>
  72. <div class="row">
  73. <div class="col-lg-6">
  74. <div class="input-group" style="width: 300px;">
  75. <input type="text" class="form-control" id="baidu">
  76. <div class="input-group-btn">
  77. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  78. <span class="caret"></span>
  79. </button>
  80. <ul class="dropdown-menu dropdown-menu-right" role="menu">
  81. </ul>
  82. </div>
  83. <!-- /btn-group -->
  84. </div>
  85. </div>
  86. </div>
  87. <h3>淘宝搜索</h3>
  88. <p>支持逗号分隔多关键字</p>
  89. <div class="row">
  90. <div class="col-lg-6">
  91. <div class="input-group" style="width: 400px;">
  92. <input type="text" class="form-control" id="taobao">
  93. <div class="input-group-btn">
  94. <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  95. <span class="caret"></span>
  96. </button>
  97. <ul class="dropdown-menu dropdown-menu-right" role="menu">
  98. </ul>
  99. </div>
  100. <!-- /btn-group -->
  101. </div>
  102. </div>
  103. </div>
  104. </form>
  105. </div>
  106. <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
  107. <script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  108. <script src="bootstrap-suggest.js"></script>
  109. <script type="text/javascript">
  110. var testBsSuggest = $("#test").bsSuggest({
  111. //url: "/rest/sys/getuserlist?keyword=",
  112. url: "data.json",
  113. /*effectiveFields: ["userName", "shortAccount"],
  114. searchFields: [ "shortAccount"],
  115. effectiveFieldsAlias:{userName: "姓名"},*/
  116. idField: "userId",
  117. keyField: "userName"
  118. }).on('onDataRequestSuccess', function (e, result) {
  119. console.log('onDataRequestSuccess: ', result);
  120. }).on('onSetSelectValue', function (e, keyword) {
  121. console.log('onSetSelectValue: ', keyword);
  122. }).on('onUnsetSelectValue', function (e) {
  123. console.log("onUnsetSelectValue");
  124. });
  125. /**
  126. * 不显示下拉按钮
  127. */
  128. var testBsSuggest = $("#testNoBtn").bsSuggest({
  129. //url: "/rest/sys/getuserlist?keyword=",
  130. url: "data.json",
  131. /*effectiveFields: ["userName", "shortAccount"],
  132. searchFields: [ "shortAccount"],
  133. effectiveFieldsAlias:{userName: "姓名"},*/
  134. showBtn: false,
  135. idField: "userId",
  136. keyField: "userName"
  137. }).on('onDataRequestSuccess', function (e, result) {
  138. console.log('onDataRequestSuccess: ', result);
  139. }).on('onSetSelectValue', function (e, keyword) {
  140. console.log('onSetSelectValue: ', keyword);
  141. }).on('onUnsetSelectValue', function (e) {
  142. console.log("onUnsetSelectValue");
  143. });
  144. /**
  145. * 从 data参数中过滤数据
  146. */
  147. var testdataBsSuggest = $("#test_data").bsSuggest({
  148. indexId: 2,  //data.value 的第几个数据,作为input输入框的内容
  149. indexKey: 1, //data.value 的第几个数据,作为input输入框的内容
  150. data: {
  151. 'value':[
  152. {'id':'0','word':'lzw','description':'http://lzw.me'},
  153. {'id':'1','word':'lzwme','description':'http://w.lzw.me'},
  154. {'id':'2','word':'meizu','description':'http://www.meizu.com'},
  155. {'id':'3','word':'flyme','description':'http://flyme.meizu.com'}
  156. ],
  157. 'defaults':'http://lzw.me'
  158. }
  159. });
  160. /**
  161. * 百度搜索 API 测试
  162. */
  163. var baiduBsSuggest = $("#baidu").bsSuggest({
  164. allowNoKeyword: false,   //是否允许无关键字时请求数据。为 false 则无输入时不执行过滤请求
  165. multiWord: true,         //以分隔符号分割的多关键字支持
  166. separator: ",",          //多关键字支持时的分隔符,默认为空格
  167. getDataMethod: "url",    //获取数据的方式,总是从 URL 获取
  168. url: 'http://unionsug.baidu.com/su?p=3&t='+ (new Date()).getTime() +'&wd=', /*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
  169. jsonp: 'cb',                      //如果从 url 获取数据,并且需要跨域,则该参数必须设置
  170. processData: function (json) {    // url 获取数据时,对数据的处理,作为 getData 的回调函数
  171. var i, len, data = {value: []};
  172. if (!json || !json.s || json.s.length === 0) {
  173. return false;
  174. }
  175. console.log(json);
  176. len = json.s.length;
  177. jsonStr = "{'value':[";
  178. for (i = 0; i < len; i++) {
  179. data.value.push({
  180. word: json.s[i]
  181. });
  182. }
  183. data.defaults = 'baidu';
  184. //字符串转化为 js 对象
  185. return data;
  186. }
  187. });
  188. /**
  189. * 淘宝搜索 API 测试
  190. */
  191. var taobaoBsSuggest = $("#taobao").bsSuggest({
  192. indexId: 2,             //data.value 的第几个数据,作为input输入框的内容
  193. indexKey: 1,            //data.value 的第几个数据,作为input输入框的内容
  194. allowNoKeyword: false,  //是否允许无关键字时请求数据。为 false 则无输入时不执行过滤请求
  195. multiWord: true,        //以分隔符号分割的多关键字支持
  196. separator: ",",         //多关键字支持时的分隔符,默认为空格
  197. getDataMethod: "url",   //获取数据的方式,总是从 URL 获取
  198. showHeader: true,       //显示多个字段的表头
  199. effectiveFieldsAlias:{Id: "序号", Keyword: "关键字", Count: "数量"},
  200. url: 'http://suggest.taobao.com/sug?code=utf-8&extras=1&q=', /*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
  201. jsonp: 'callback',               //如果从 url 获取数据,并且需要跨域,则该参数必须设置
  202. processData: function(json){     // url 获取数据时,对数据的处理,作为 getData 的回调函数
  203. var i, len, data = {value: []};
  204. if(!json || !json.result || json.result.length == 0) {
  205. return false;
  206. }
  207. console.log(json);
  208. len = json.result.length;
  209. for (i = 0; i < len; i++) {
  210. data.value.push({
  211. "Id": (i + 1),
  212. "Keyword": json.result[i][0],
  213. "Count": json.result[i][1]
  214. });
  215. }
  216. console.log(data);
  217. return data;
  218. }
  219. });
  220. $("form").submit(function(e) {
  221. return false;
  222. });
  223. </script>
  224. </body>
  225. </html>

配置参数

参数列表中的值均为插件默认值

{url: null,                      //请求数据的 URL 地址jsonp: null,                    //设置此参数名,将开启jsonp功能,否则使用json数据结构data: {},                       //提示所用的数据getDataMethod: "firstByUrl",    //获取数据的方式,url:一直从url请求;data:从 options.data 获取;firstByUrl:第一次从Url获取全部数据,之后从options.data获取indexId: 0,                     //每组数据的第几个数据,作为input输入框的 data-id,设为 -1 且 idField 为空则不设置此值indexKey: 0,                    //每组数据的第几个数据,作为input输入框的内容idField: "",                    //每组数据的哪个字段作为 data-id,优先级高于 indexId 设置(推荐)keyField: "",                   //每组数据的哪个字段作为输入框内容,优先级高于 indexKey 设置(推荐)effectiveFields: [],            //有效显示于列表中的字段,非有效字段都会过滤,默认全部,对自定义getData方法无效effectiveFieldsAlias: {},       //有效字段的别名对象,用于 header 的显示searchFields: [],               //有效搜索字段,从前端搜索过滤数据时使用。effectiveFields 配置字段也会用于搜索过滤showHeader: false,              //是否显示选择列表的 header,默认有效字段大于一列时显示,否则不显示showBtn: true,                  //是否显示下拉按钮allowNoKeyword: true,           //是否允许无关键字时请求数据multiWord: false,               //以分隔符号分割的多关键字支持separator: ",",                 //多关键字支持时的分隔符,默认为半角逗号processData: processData,       //格式化数据的方法,返回数据格式参考 data 参数getData: getData,               //获取数据的方法autoMinWidth: false,            //是否自动最小宽度,设为 false 则最小宽度不小于输入框宽度listAlign: "left",              //提示列表对齐位置,left/right/autoinputBgColor: '',               //输入框背景色,当与容器背景色不同时,可能需要该项的配置inputWarnColor: "rgba(255,0,0,.1)", //输入框内容不是下拉列表选择时的警告色listStyle: {"padding-top":0, "max-height": "375px", "max-width": "800px","overflow": "auto", "width": "auto","transition": "0.3s", "-webkit-transition": "0.3s", "-moz-transition": "0.3s", "-o-transition": "0.3s"},                              //列表的样式控制listHoverStyle: 'background: #07d; color:#fff', //提示框列表鼠标悬浮的样式listHoverCSS: "jhover",         //提示框列表鼠标悬浮的样式名称keyLeft: 37,                    //向左方向键keyUp: 38,                      //向上方向键keyRight: 39,                   //向右方向键keyDown: 40,                    //向下方向键keyEnter: 13                    //回车键
}

bootstrap bssuggest相关推荐

  1. Bootstrap Search Suggest 插件使用

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  2. SpringCloud配置文件 application.yml和 bootstrap.yml区别,执行顺序

    说在前面 SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称 ...

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:禁用按钮

    <!DOCTYPE html> <html><head><meta charset="utf-8"> <title>菜鸟 ...

  4. Bootstrap 栅格系统 理解与总结

    Bootstrap 栅格系统 学习总结 Bootstrap框架是如今最流行的前端框架之一,Bootstrap功能强大,简单易学,很符合实际应用场景. 只是Bootstrap的内容较多,新手往往不能很快 ...

  5. 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理...

    在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...

  6. Bootstrap学习的点点滴滴

    1)网站: http://www.bootcss.com/ http://v3.bootcss.com/getting-started/#download https://github.com/twb ...

  7. bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  8. bootstrap跟vue冲突吗_知道微服务,但你知道微前端吗?

    在 toB 的前端开发工作中,我们往往就会遇到如下困境: 工程越来越大,打包越来越慢 团队人员多,产品功能复杂,代码冲突频繁.影响面大 内心想做 SaaS 产品,但客户总是要做定制化 不同的团队可能有 ...

  9. bootstrap 新闻列表_kuapingUI 2.2 版本发布,跨屏 UI-bootstrap 大组件 UI 框架

    kuapingUI 2.2 版本发布,增加了一个比较实用的工具栏web组件,是由分享按钮组 + 联系按钮组构成,分享按钮组包含了 QQ空间.朋友圈.QQ.微信.微博等分享:联系按钮组包含了 微信.QQ ...

最新文章

  1. 获得H.264视频分辨率的方法
  2. 关于meta的各种用处以及移动端的常见问题
  3. 记一次vue 普通异步请求微信二进制二维码 乱码 问题解决然后渲染
  4. curl 访问不到html_嵌入式工程师入门前后端系列1:访问一个网页
  5. C# 类2010-11-07
  6. Everything的使用-初级篇
  7. eXeScope之类的程序资源修改器的使用,很牛!
  8. mysql math.sqrt_详解MySQL中的SQRT函数的使用方法
  9. 二十一世纪大学英语读写教程(第三册)学习笔记(原文)——10 - Plain Talk About Handling Stress(浅谈如何缓解压力)
  10. css学习11:font-style字体样式
  11. [转]OKR结合CFR的管理模式
  12. VoIP全球发展现状
  13. 自制合成孔径雷达(7) 声卡实现测速声呐
  14. JeeSite学习记录
  15. 降价再扩围 中国超三成大中城市二手房价环比下跌
  16. 汇总:不同格式文件怎么转换成PDF?
  17. 两种背景图片不重复的铺满网页屏幕的方法对比(HTML/JSP)
  18. 虚拟主机1-基于IP
  19. 银行业务名词释义(未完善)
  20. react-mobx基础

热门文章

  1. HALCON双目标定
  2. 【PHP 开发】mac 下配置 PHP 环境的方法
  3. Web测试实践-任务进度-Day02
  4. mysql5.6创建用户并授予指定数据库或表权限
  5. MongoDB之bson的介绍
  6. 为什么说一知半解的人生最可怕?
  7. Selenium支持高版本的FireFox
  8. 开源项目PullToRefresh详解(一)——PullToRefreshListView
  9. JAVA 的wait(), notify()与synchronized同步机制
  10. 会计的思考(20):还原会计报表的企业个性之四(持续经营)