bootstrap select下拉搜索插件使用方法详解


Posted in Javascript onNovember 23, 2017

bootstrap-select是boot的下拉搜索插件,使用的时候有时我们需要动态从后台 或者 直接加载动态数据。
下面是根据一级下拉菜单,动态加载二级联动方式。(不是ajax后台获取)

首先引入js与css文件(一个css两个js)

<link rel="stylesheet" href="css/bootstrap-select.css" rel="external nofollow" >

js省略

一、下拉搜索(html)

<select class="selectpicker" data-live-search="true" id="d1">
  <option value="-1">请选择</option>
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<select class="selectpicker" data-live-search="true" id="d2">
  <option value="-1">请选择</option>
</select>

二、加载数据 二级联动(js)

function smallScreen(){   // 个人项目中间距处理,可以省略
  if($(window).width()<768){
    $('.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn)').css({
      'width':'100%',
      'margin-top':'10px'
    });
  }
}
$(function(){
var erji=[
    ['海淀区','东城区','西城区'], // 0
    ['浦东区','金山区','黄埔区'], // 1
    ['台州市','杭州市','宁波市','嘉兴市'], // 2
    ['郑州市','洛阳市','开封市'] // 3
  ];
  var yuan = '<li data-original-index="-1" class>' +   // 字符串拼接
      '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">' +
      '<span class="text">请选择</span>' +
      '<span class="glyphicon glyphicon-ok check-mark"></span>' +
      '</a>' +
      '</li>';
  $('#d1').change(function(){  // 一级下拉菜单选项改变事件
    if($(this).val() === '-1'){
      $('#d2').prev('div.dropdown-menu').find('ul').html(yuan);
      $('#d2').html('<option>请选择</option>');
      $('.selectpicker').selectpicker('refresh');
      smallScreen();
      return;
    }
    var cityIndex = erji[ this.value ]; // 当前下标在二级对应内容
    var html = '<li data-original-index="-1" class>' +   // 下拉搜索动态加载成的标签
        '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">' +
        '<span class="text">请选择</span>' +
        '<span class="glyphicon glyphicon-ok check-mark"></span>' +
        '</a>' +
        '</li>';
    var erjiOption = '<option value="0">请选择</option>';  // 同事添加option
    for(var i = 0;i<cityIndex.length;i++){
      html+= '<li data-original-index='+i+'>' +
          '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">' +
          '<span class="text">'+cityIndex[i]+'</span>' +
          '<span class="glyphicon glyphicon-ok check-mark"></span>' +
          '</a>' +
          '</li>';  // 此处为了兼容ie,采用的字符串拼接而不是ES6的模板字符串。
      // 添加option
      erjiOption += '<option value='+i+'>'+cityIndex[i]+'</option>';
    }
    $('#d2').prev('div.dropdown-menu').find('ul').html(html);
    $('#d2').html(erjiOption);
    $('.selectpicker').selectpicker('refresh');
    smallScreen();
  });
});
});

个人使用有效。

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

Javascript 相关文章推荐
javascript 页面只自动刷新一次
Jul 10 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
May 25 Javascript
jQuery监听文件上传实现进度条效果的方法
Oct 16 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
Dec 26 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
老生常谈js中的MVC
Jul 25 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
在layui tab控件中载入外部html页面的方法
Sep 04 Javascript
vue中对象数组去重的实现
Feb 06 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
基于Bootstrap实现城市三级联动
Nov 23 #Javascript
bootstrap-Treeview实现级联勾选
Nov 23 #Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 #Javascript
sublime text配置node.js调试(图文教程)
Nov 23 #Javascript
Vue代码分割懒加载的实现方法
Nov 23 #Javascript
初探js和简单隐藏效果的实例
Nov 23 #Javascript
详解如何在angular2中获取节点
Nov 23 #Javascript
You might like
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
项目资料员岗位职责
2013/12/10 职场文书
科学发展观活动总结
2014/08/28 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers