bootstrap combox 搜索建议插件

这是一个基于 bootstrap 按钮式下拉菜单组件 ( V3 / V4 ) 的搜索建议插件。

测试(首次从 URL 获取数据)

配置了 data-id,非下拉菜单选择输入则背景色警告。

测试(modal 中显示;不自动选中值;不显示按钮;)

modal test

测试(首次从 URL 获取数据,显示 header,不显示按钮,忽略大小写,显示清除按钮)


clearable: true, //可清除已输入内容
ignorecase: true, //忽略大小写
effectiveFieldsAlias:{userName: "姓名"}, //有效字段别名
showHeader: true, //显示 header
showBtn: false, //不显示下拉按钮
delayUntilKeyup: true //获取数据方式为 firstByUrl 时,延迟到有输入/获取到焦点时请求

提示:
clearable 参数使用了 glyphicons 图标。bootstrap v4 默认不带该图标样式,所以该参数不会生效。此时可自行在 html 代码的 input 输入框标签前添加 i.clearable 标签元素来实现。
例如,页面中引入了 font-awesome,可添加标签为(见下一个示例):

<i class="clearable fa fa-remove"></i>

测试(json 数据中获取)

默认启用空关键字检索。

百度搜索

支持逗号分隔多关键字


allowNoKeyword: false, //无输入时不执行过滤请求
multiWord: true, //以分隔符号分割的多关键字支持
separator: ",", //多关键字支持时的分隔符
getDataMethod: "url" //总是从 URL 获取数据

百度搜索(预处理关键字)

支持逗号分隔多关键字

设置前置关键字


allowNoKeyword: false, //无输入时不执行过滤请求
multiWord: true, //以分隔符号分割的多关键字支持
separator: ",", //多关键字支持时的分隔符
getDataMethod: "url", //获取数据的方式,总是从 URL 获取

fnPreprocessKeyword: function(keyword) {
//请求数据前,对输入关键字作预处理
    return $.trim($('#preKeyword').val()) + keyword;
}

百度搜索(ajax 请求前回调调整参数)

预定义关键字


allowNoKeyword: false, //无输入时不执行过滤请求
multiWord: true, //以分隔符号分割的多关键字支持
separator: ",", //多关键字支持时的分隔符
getDataMethod: "url", //总是从 URL 获取数据

fnAdjustAjaxParam: function(keyword, opts) {
//调整 ajax 请求参数方法,用于更多的请求配置需求。如对请求关键字作进一步处理、修改超时时间等
    console.log('ajax 请求参数调整:', keyword, opts);
    return {
        timeout: 10000,
        data: {
            t: (new Date()).getTime(),
            wd: $('#customKeyword').val() +  keyword
        }
    };
}

淘宝搜索 试一试

支持逗号分隔多关键字,并展示列表表头。


allowNoKeyword: false, //无输入时不执行过滤请求
multiWord: true, //以分隔符号分割的多关键字支持
separator: ",", //多关键字支持时的分隔符
getDataMethod: "url", //总是从 URL 获取数据
autoDropup: true, //自动判断向上/下
showHeader: true, //显示多个字段的表头
effectiveFieldsAlias: {Id: "序号", Keyword: "关键字", Count: "数量"} //showHeader 时,header 别名