Bootstrap Search Suggest使用例子


Posted in Javascript onDecember 21, 2016

Bootstrap Search Suggest 官方说明文档如下:suggest说明文档
由于该文档没有详细说明怎么运用到实际的项目中,特别是怎么将数据库中的值显示到页面上,所以我再运用到项目中,遇到了很多的坑,为了大家更好使用该插件,也为了自己总结下所遇到的坑,特总结如下

一、项目框架

1.后台:spring+springmvc+mybatis

2.前台: bootstrap+jQuery+ajax

3.项目管理:maven

二、前台代码

1.html代码

<div class="content nav-version"> 
 <table class="detail" style="margin-bottom:12px;"> 
 <tr><td class="first-col"> 
 <div class="row"> 
 <div class="col-lg-12"> 
  <div class="input-group" style="width: 100%; height: 17px; display: -webkit-box;"> 
  <label style="margin-left: 13px;">用户名称:</label> 
  <input id="userName" type="text" style="height: 22px;" /> 
  <div class="input-group-btn"> 
  <button type="button" class="btn btn-default dropdown-toggle"data-toggle="dropdown"> 
  <span class="caret"></span> 
  </button> 
  <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul> 
  </div> 
 </div> 
 </div> 
 </div> 
 </td></tr> 
 </table> 
</div>

2,js代码,主要有2个js文件,一个是autoLoad.js,一个是bootstrap-suggest.js,autoLoad.js文件主要用于配置属性,bootstrap-suggest.js是系统文件

autoLoad.js代码如下:

(function() { 
 $("#userName").bsSuggest({ 
 url: contextUrl +'/user/getuserName?d='+new Date().getTime(), 
 //d='+new Date().getTime()主要是为了让每次输入的值都及时加载,不用也行 
 /*effectiveFields: ["userName", "shortAccount"], 
 searchFields: [ "shortAccount"],*/ 
/* data: { 
 userName: $("#userName").val() 
 }, */ 
 effectiveFieldsAlias:{userName: "分类名称名称"},//有效字段别名 
 allowNoKeyword: false, // 是否允许无关键字时请求数据 
 ignorecase: true,//忽略大小写 
 showHeader: false,//显示 header 
 showBtn: false, //不显示下拉按钮 
 delayUntilKeyup: true, //获取数据的方式为 firstByUrl 时,延迟到有输入/获取到焦点时才请求数据 
 idField: "userName", 
 keyField: "userName" 
 }).on('onDataRequestSuccess', function (e, result) { 
 console.log('onDataRequestSuccess: ', result); 
 }).on('onSetSelectValue', function (e, keyword, data) { 
 console.log('onSetSelectValue: ', keyword, data); 
 }).on('onUnsetSelectValue', function () { 
 console.log("onUnsetSelectValue"); 
 }); 
}());

bootstrap-suggest.js,autoLoad.js 代码,由于代码太多,给出下载地址,主要修改了2个地方,一个是

var ajaxParam = { 
 type: 'POST', 
 dataType: options.jsonp ? 'jsonp' : 'json', 
 timeout: 5000, 
 data:{"keyword":keyword}//添加data,用于post传递数据 
 };

另一个是,listStyle,添加了位置信息

listStyle: { 
 'position':'relative', 
 'margin-left':'-206px', 
 'margin-top':'26px', 
 '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' 
 
 },

三、controller层代码

@Controller 
@RequestMapping("/user") 
public class UserController { 
 
 @Autowired 
 private UserService userService; 
 
 @RequestMapping(value="/getUserName",method = RequestMethod.POST) 
 @ResponseBody 
 public String getUserName(HttpServletRequest request,HttpServletResponse response){ 
 String userName = request.getParameter("keyword"); 
 String userNameList = userService.getUserName(userName); 
 return userNameList; 
 } 
}

四、service层和实现层代码

public interface UserService { 
 String getUserName(String userName); 
}
/** 
 * @author 李光光(编码小王子) 
 * @Email 826331692@jd.com 
 * @date 2016年12月19日 下午4:18:45 
 * @version 1.0 
 */ 
@Service 
public class UserServiceImpl implements UserService { 
 
 @Autowired 
 private UserDao userDao; 
 
 @Override 
 public String getUserName(String userName) { 
 String json="{\"message\": \"\",\"value\": ["; 
// if(!userName.isEmpty()){ 
 List<String> list = userDao.getUserName(userName); 
 if(list != null && !list.isEmpty()){ 
 for(int i=0;i<list.size;i++){ 
  json+="{"+"\"userName\":"+"\""+list.get(i)+"\"" +"},"; 
 } 
 json = json.substring(0,json.length()-1>0?json.length()-1:1); 
 json+="],\"code\": 200,\"redirect\": \"\"}"; 
 return json; 
 }else{ 
 json+="],\"code\": 400,\"redirect\": \"\"}"; 
 return json; 
 } 
 } 
 
}

五、dao层代码

public interface UserDao { 
 
 List<String> getUserName(@Param("userName")String userName); 
}

六mapper层代码

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 
<mapper namespace=".....dao.UserDao" > 
 <!--根据输入的用户名类名查询相似的用户名 --> 
 <select id="getUserName" resultType="String"> 
 select distinct userName 
 from user_table 
 where yn=1 
 <if test="userName != null and userName != ''">and userName like concat (#{userName},'%')</if> 
 limit 0,10 
 </select> 
 
</mapper>

至此整个代码就完成了,效果如下

Bootstrap Search Suggest使用例子

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 Javascript
7个JS基础知识总结
Mar 05 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
javascript 用函数实现继承详解
May 28 Javascript
jQuery实现的购物车物品数量加减功能代码
Nov 16 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
Sep 26 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 Javascript
简单实现Bootstrap标签页
Aug 09 #Javascript
获取JavaScript异步函数的返回值
Dec 21 #Javascript
bootstrap实现图片自动轮播
Dec 21 #Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 #Javascript
详解前端自动化工具gulp自动添加版本号
Dec 20 #Javascript
详解Vue.js动态绑定class
Dec 20 #Javascript
浅谈Angular的$q, defer, promise
Dec 20 #Javascript
You might like
国内php原创论坛
2006/10/09 PHP
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
js切换光标示例代码
2013/10/10 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
TensorFlow变量管理详解
2018/03/10 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python在地图上画比例的实例详解
2020/11/13 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
python字典与json转换的方法总结
2020/12/28 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
手机被没收检讨书
2014/02/22 职场文书
服务理念口号
2014/06/11 职场文书
研究生个人学年总结
2015/02/14 职场文书
失恋33天观后感
2015/06/11 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
详解Python牛顿插值法
2021/05/11 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL