源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 365|回复: 22

[JavaScript] Bootstrap Search Suggest使用例子

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2016-12-21 08:50:49 | 显示全部楼层 |阅读模式
这篇文章主要为大家详细介绍了Bootstrap Search Suggest使用例子,教大家使用bootstrap搜索建议插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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> 

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

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

Bootstrap学习教程

Bootstrap实战教程

Bootstrap Table使用教程

Bootstrap插件使用教程

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

回复

使用道具 举报

1

主题

2万

回帖

59

积分

注册会员

Rank: 2

积分
59
发表于 2022-10-24 21:42:33 | 显示全部楼层
的谁vdvdsvdsvdsdsv
回复 支持 反对

使用道具 举报

13

主题

2万

回帖

85

积分

注册会员

Rank: 2

积分
85
发表于 2023-1-12 02:19:32 | 显示全部楼层
啦啦啦啦啦德玛西亚
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2023-6-24 03:20:12 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

194

积分

注册会员

Rank: 2

积分
194
发表于 2023-7-29 01:46:31 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-16 01:40:28 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-9-8 18:17:51 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2023-10-14 10:40:32 | 显示全部楼层
加快速度很快就撒谎
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2024-4-26 12:30:35 | 显示全部楼层
的谁vdvdsvdsvdsdsv
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-5-13 18:52:23 | 显示全部楼层
554411515451555
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-22 21:47 , Processed in 0.128507 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表