Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >bootstrap-suggest插件

bootstrap-suggest插件

作者头像
别团等shy哥发育
发布于 2023-02-25 09:15:06
发布于 2023-02-25 09:15:06
11.3K01
代码可运行
举报
运行总次数:1
代码可运行

文章目录

一、bootstrap-suggest

这是一个基于 bootstrap 按钮式下拉菜单组件的搜索建议插件,必须使用于按钮式下拉菜单组件上。 示例地址:http://lzw.me/pages/demo/bootstrap-suggest-plugin/demo/ 插件源码:https://github.com/veenter/bootstrap-suggest-plugin

1.1 功能说明

  • 搜索方式:从 data.value 的有效字段数据中查询 keyword 的出现,或字段数据包含于 keyword 中
  • 支持单关键字、多关键字的输入搜索建议,多关键字可自定义分隔符
  • 支持按 data 数组数据搜索、按 URL 请求搜索和按首次请求URL数据并缓存搜索三种方式
  • 单关键字会设置 data-id 和输入框内容两个值,以 indexId/idField 和 indexKey/idFiled 取值 data 的数据为准;多关键字只设置输入框值

1.2 实现效果:

1.3 方法调用

1、禁用提示: ("input#test").bsSuggest("disable"); 2、启用提示: ("input#test").bsSuggest("destroy"); 4、查看版本:

1.4 事件监听

1、onDataRequestSuccess: 当 AJAX 请求数据成功时触发,并传回结果到第二个参数 2、onSetSelectValue:当从下拉菜单选取值时触发,并传回设置的数据到第二个参数 3、onUnsetSelectValue:当设置了 idField,且自由输入内容时触发(与背景警告色显示同步) 4、onShowDropdown:下拉菜单显示时触发 5、onHideDropdown:下拉菜单隐藏式触发

1.5 完整代码实现:

1、引入 jQuery、bootstrap.min.css、bootstrap.min.js 2、引入插件js: bootstrap-suggest.min.js

1.5.1 前端关键代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <label class="col-sm-2 control-label">油井编号(插件测试):</label>
                                <div class="col-sm-4 controls">
                                    <div class="input-group">
                                        <input type="text" class="form-control" id="wellId_test" name="wellInfo.wellId">
                                        <div class="input-group-btn">
                                            <button type="button" class="btn btn-white dropdown-toggle"
                                                    data-toggle="dropdown">
                                                <span class="caret"></span>
                                            </button>
                                            <ul class="dropdown-menu dropdown-menu-right" role="menu">
                                            </ul>
                                        </div>
                                    </div>
                                </div>

1.5.2 js代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//bootstrap-suggest插件根据用户身份加载油井
        $("#wellId_test").bsSuggest('init',{
          clearable:true,   //是否可清除已输入的内容
          url:"/opms/wellInfo/getAllWellId",
            showBtn:true,          //是否显示可下拉按钮
            ignorecase:true,        //前端搜索匹配时,忽略大小写
            hideOnSelect:true,      //鼠标从列表单击选择了值时,是否隐藏选择列表
            listAlign:'auto',        //提示列表对齐位置,left/right/auto
            idField:"wellId",           //每组数据的哪个字段作为 data-id,优先级高于 indexId 设置(推荐)
            keyField :"wellId",			//每组数据的哪个字段作为输入框内容,优先级高于 indexKey 设置(推荐)
            effectiveFields: ["wellId","wellType","abandonWell"],// 有效显示于列表中的字段,非有效字段都会过滤,默认全部有效。
            effectiveFieldsAlias: {
              "wellId":"井编号",
              "wellType":"井类型",
              "abandonWell":"是否报废"
            },
        }).on("onSetSelectValue",function (e,keyword) {
            // alert($('#wellId_test').val());
            // $('#wellId_test').val(keyword.wellId);
            // wellId_add=keyword.wellId;
        }).on("onUnsetSelectValue",function (e) {
            // wellId_add = '';
        });

1.5.3 Controller层:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//根据用户身份获取油井编号
    @RequestMapping(value = "/getAllWellId",method = {RequestMethod.GET,RequestMethod.POST})
    @ResponseBody
    public Map<String,Object> getAllWellId(HttpServletRequest req, HttpServletResponse res)
        throws Exception{
        //先从session中取出存进去的用户对象
        UserInfo ui= (UserInfo) req.getSession().getAttribute("USERINFO");
            //根据身份获取油井信息,管理员可查看全部油井,操作员只能查看所属作业区的油井
            List<WellInfo> wellInfos= wellInfoService.getAllOilWellByRoleId(ui);
/*            for(WellInfo wellInfo:wellInfos){
                System.out.println(wellInfo);
            }*/
            int count=0;
            if(wellInfos!=null&&wellInfos.size()>0){
                count=wellInfos.size();
            }
            //创建result对象,保存返回结果
            Map<String,Object> result=new HashMap<>(2);
            result.put("count",count);
            result.put("value",wellInfos);
            return result;

        }

后面Service层和Dao层的代码就不写了,你看到Controller层这里应该就会了

配置参数如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var defaultOptions = {
    url: null,                      //请求数据的 URL 地址
    jsonp: null,                    //设置此参数名,将开启jsonp功能,否则使用json数据结构
    data: {
        value: []
    },                              //提示所用的数据,注意格式
    indexId: 0,                     //每组数据的第几个数据,作为input输入框的 data-id,设为 -1 且 idField 为空则不设置此值
    indexKey: 0,                    //每组数据的第几个数据,作为input输入框的内容
    idField: '',                    //每组数据的哪个字段作为 data-id,优先级高于 indexId 设置(推荐)
    keyField: '',                   //每组数据的哪个字段作为输入框内容,优先级高于 indexKey 设置(推荐)
 
    /* 搜索相关 */
    autoSelect: true,               // 键盘向上/下方向键时,是否自动选择值
    allowNoKeyword: TRUE,           // 是否允许无关键字时请求数据
    getDataMethod: 'firstByUrl',    // 获取数据的方式,url:一直从url请求;data:从 options.data 获取;firstByUrl:第一次从Url获取全部数据,之后从options.data获取
    delayUntilKeyup: false,         // 获取数据的方式 为 firstByUrl 时,是否延迟到有输入时才请求数据
    ignorecase: false,              // 前端搜索匹配时,是否忽略大小写
    effectiveFields: [],            // 有效显示于列表中的字段,非有效字段都会过滤,默认全部有效。
    effectiveFieldsAlias: {},       // 有效字段的别名对象,用于 header 的显示
    searchFields: [],               // 有效搜索字段,从前端搜索过滤数据时使用,但不一定显示在列表中。effectiveFields 配置字段也会用于搜索过滤
    twoWayMatch: true,              // 是否双向匹配搜索。为 true 即输入关键字包含或包含于匹配字段均认为匹配成功,为 false 则输入关键字包含于匹配字段认为匹配成功
    multiWord: false,               // 以分隔符号分割的多关键字支持
    separator: ',',                 // 多关键字支持时的分隔符,默认为半角逗号
    delay: 300,                     // 搜索触发的延时时间间隔,单位毫秒
    emptyTip: '',                   // 查询为空时显示的内容,可为 html
    searchingTip: '搜索中...',       // ajax 搜索时显示的提示内容,当搜索时间较长时给出正在搜索的提示
    hideOnSelect: false,            // 鼠标从列表单击选择了值时,是否隐藏选择列表
 
    /* UI */
    autoDropup: false,              //选择菜单是否自动判断向上展开。设为 true,则当下拉菜单高度超过窗体,且向上方向不会被窗体覆盖,则选择菜单向上弹出
    autoMinWidth: false,            //是否自动最小宽度,设为 false 则最小宽度不小于输入框宽度
    showHeader: false,              //是否显示选择列表的 header。为 true 时,有效字段大于一列则显示表头
    showBtn: true,                  //是否显示下拉按钮
    inputBgColor: '',               //输入框背景色,当与容器背景色不同时,可能需要该项的配置
    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'
    },                              //列表的样式控制
    listAlign: 'left',              //提示列表对齐位置,left/right/auto
    listHoverStyle: 'background: #07d; color:#fff', //提示框列表鼠标悬浮的样式
    listHoverCSS: 'jhover',         //提示框列表鼠标悬浮的样式名称
    clearable: false,               // 是否可清除已输入的内容
 
    /* key */
    keyLeft: 37,                    //向左方向键,不同的操作系统可能会有差别,则自行定义
    keyUp: 38,                      //向上方向键
    keyRight: 39,                   //向右方向键
    keyDown: 40,                    //向下方向键
    keyEnter: 13,                   //回车键
 
    /* methods */
    fnProcessData: processData,     //格式化数据的方法,返回数据格式参考 data 参数
    fnGetData: getData,             //获取数据的方法,无特殊需求一般不作设置
    fnAdjustAjaxParam: null,        //调整 ajax 请求参数方法,用于更多的请求配置需求。如对请求关键字作进一步处理、修改超时时间等
    fnPreprocessKeyword: null       //搜索过滤数据前,对输入关键字作进一步处理方法。注意,应返回字符串
};

提示:在 bootstrap v4 下, clearable 为 true 时,应引入 font-awesome 图标库,该清除按钮使用了 fa-plus 图标。

使用bootstrap-suggest时的bug解决方案:

https://blog.csdn.net/qq_43753724/article/details/114884133?spm=1001.2014.3001.5501

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
bootstrap-suggest插件处理复杂对象时的解决方案
在用bootstrap-suggest插件的时候,如果要提示的属性中有关联对象的话,前端页面显示不出来(下面的areaId属性加载不出来) wellInfo类关键属性:
别团等shy哥发育
2023/02/25
8870
bootstrap-suggest插件处理复杂对象时的解决方案
【Java 进阶篇】深入了解 Bootstrap 插件
Bootstrap 是一个流行的前端框架,提供了各种强大的插件,用于增强网页和应用程序的功能和交互性。本篇博客将深入介绍 Bootstrap 插件,适用于那些刚刚开始学习前端开发的小白。
繁依Fanyi
2023/10/23
8520
【Java 进阶篇】深入了解 Bootstrap 插件
从零开始写项目第三篇【在线聊天和个人收藏夹】
在线聊天 在浏览网页的时候无意发现了弹幕这个玩意,于是我们简单去探究了一下弹幕其实是怎么产生的。 后来就接触到了“推送”这么一个概念,然后发现了goEasy这个服务商。 http://goeasy.io/cn/started goEasy能够将我们的数据实时进行推送,使用起来也是很方便的。 使用了goEasy以后,我们就可以实现实时推送了。那么就剩下弹幕是怎么弄的了。后来又去找到了JS的组件: http://yaseng.org/jquery.barrager.js/ 这个组件可以帮我们很方便地生成弹幕…
Java3y
2018/04/02
1.7K0
从零开始写项目第三篇【在线聊天和个人收藏夹】
04_Bootstrap插件01
Bootstrap 中的下拉菜单依赖于 .dropdown 类,或者添加了 position: relative; 的元素。
张哥编程
2024/12/13
2400
BootStrap应用开发学习入门1
什么是字体图标? 答:字体图标是在 Web 项目中使用的图标字体,可以通过基于项目的 Bootstrap 来免费使用这些图标。
全栈工程师修炼指南
2020/10/23
46K0
BootStrap应用开发学习入门1
Bootstrap基本入门大全
Bootstrap 是基于 HTML、CSS、JAVASCRIPT的,它简洁灵活,使得 Web 开发更加快捷。 重点的是你要理解这个框架的运行机制,了解了它是怎么运行怎么使用,才能够更加高效的布局页面
IMWeb前端团队
2017/12/29
2.8K0
Bootstrap基本入门大全
ASP.NET MVC使用Bootstrap系列(3)——使用Bootstrap 组件
Bootstrap为我们提供了十几种的可复用组件,包括字体图标、下拉菜单、导航、警告框、弹出框、输入框组等。在你的Web Application中使用这些组件,将为用户提供一致和简单易用的用户体验。 Bootstrap组件本质上是结合了各种现有Bootstrap元素以及添加了一些独特Class来实现。Bootstrap元素我在上一篇文章中涉及到,具体可以参考《ASP.NET MVC使用Bootstrap系列(2)——使用Bootstrap CSS和HTML元素》。 在这篇博客中,我将继续探索Bootstr
用户1161731
2018/01/11
6.8K2
ASP.NET MVC使用Bootstrap系列(3)——使用Bootstrap 组件
Bootstrap学习笔记上(带源码)
☑ 简单灵活可用于架构流行的用户界面和交互接口的html、css、javascript工具集。
牧云云
2022/03/11
4K0
Bootstrap学习笔记上(带源码)
【Bootstrap】012-组件:按钮组、按钮式下拉菜单、输入框组
通过按钮组容器把一组按钮放在同一行里。通过与按钮插件联合使用,可以设置为单选框或多选框的样式和行为;
訾博ZiBo
2025/01/06
3160
【Bootstrap】012-组件:按钮组、按钮式下拉菜单、输入框组
【Java Web_06】Bootstrap
一、CSS全局样式 1. 文本对其方式 ① text-left : 左对齐 ② text-center : 居中 ③ text-right : 右对齐 2. 文本大小写转换 ① text-lowercase : 转小写 ② text-uppercase : 转大写 ③ text-capitalize : 首字母大写 3. 列表样式 ① list-unstyled : 取消前置图标,将左边距设置为0 ② lis
用户8250147
2021/02/04
6.1K0
通过Bootstrap 输入框组,表单控件的使用案例
Bootstrap 支持的另一个特性,输入框组。输入框组扩展自 表单控件。使用输入框组,您可以很容易地向基于文本的输入框添加作为前缀和后缀的文本或按钮。
好派笔记
2021/09/18
2.1K0
【BootStrap】图片样式、辅助类样式和CSS组件 -附源码
.img-responsive:直接为图片添加该样式,可以实现响应式图片。 .center-block:图片居中样式,而不能使用text-center样式。 图片形状样式:.img-rounded(圆角图片)、.img-circle(圆形图片)、.img-thumbnail(边框圆角)
谙忆
2021/01/21
2.8K0
【BootStrap】图片样式、辅助类样式和CSS组件 -附源码
前端|Bootstrap——导航组件
Bootstrap是一个用于快速开发Web 应用程序和网站的前端框架,它提供了一个带有网格系统、链接样式、背景的基本结构。Bootstrap提供了许多的组件,其中就包括导航组件。这在很大程度上简化了操作。通常都是利用列表实现来导航的,常用的是无序列表(<ul>)和有序列表(<ol>)。自定义列表(<dl>)一般不会用来实现导航。
算法与编程之美
2020/03/25
7K0
Bootstrap3-导航条[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129314.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/29
2.7K0
ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件
序言 Bootstrap的JavaScript插件是以JQuery为基础,提供了全新的功能并且还可以扩展现有的Bootstrap组件。通过添加data attribute(data 属性)可以轻松的使用这些插件,当然你也可以使用编程方式的API来使用。 为了使用Bootstrap插件,我们需要添加Bootstrap.js或者Bootstrap.min.js文件到项目中。这两个文件包含了所有的Bootstrap插件,推荐引用Bootstrap.min.js。当然你也可以包含指定的插件来定制化Bootstr
用户1161731
2018/01/11
5.5K0
ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件
前端|BootStrap 布局组件
<span class=“glyphicon glyphicon-home”></span>
算法与编程之美
2020/06/03
3.7K0
【Bootstrap】011-组件:Glyphicons 字体图标、下拉菜单
见https://v3.bootcss.com/components/#glyphicons
訾博ZiBo
2025/01/06
2690
【Bootstrap】011-组件:Glyphicons 字体图标、下拉菜单
BootStrap应用开发学习入门
[TOC] 0x00 前言简介 什么是BootStrap? 答:Bootstrap是Twitter 的 Mark Otto 和 Jacob Thornton 开发的推出的一个用于前端开发的开源工具包产
全栈工程师修炼指南
2020/10/23
18.3K0
BootStrap应用开发学习入门
Jump Start Bootstrap 第4章
JavaScript是网页上事实上的脚本语言。流行的网页功能,例如:漂亮的图片幻灯片、下拉菜单、弹出框等,都可以结合JavaScript和CSS实现。在这章,我们将讨论一些Bootstrap 3 提供的随时可用的JavaScript插件,很容易创建一些高级的网页功能。
Remember_Ray
2018/12/20
30K0
Jump Start Bootstrap 第4章
【Java 进阶篇】深入理解 Bootstrap 导航条与分页条
Bootstrap 是一个强大的前端框架,为网页和应用程序开发提供了丰富的组件和工具。其中,导航条和分页条是两个常用的组件,用于创建网站的导航和分页功能。本篇博客将深入探讨 Bootstrap 导航条和分页条的使用,适用于那些希望提升网页设计技能的初学者。
繁依Fanyi
2023/10/22
6480
【Java 进阶篇】深入理解 Bootstrap 导航条与分页条
相关推荐
bootstrap-suggest插件处理复杂对象时的解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验