bootstrap-select下拉搜索插件 动态加载自己数据的二级联动

bootstrap-select是boot的下拉搜索插件,使用的时候有时我们需要动态从后台 或者 直接加载动态数据。

下面是根据一级下拉菜单,动态加载二级联动方式。

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

<link rel="stylesheet" href="css/bootstrap-select.css">
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=[   //ajax同理
        ['海淀区','东城区','西城区'],  // 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();
    });
});
});
个人编写,使用有效。


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值