bootstrap-multiselect.js多选下拉框初始化时默认选中初始值

时间:2024-02-29 22:42:50

bootstrap-multiselect.js多选下拉框默认值设置

一、案例数据格式 

二、HTML代码

<select id="msgRoles" multiple="multiple" class="validate[required]"></select>
  • 1

三、原始数据加载方法

//复选下拉框
function loadMultiSelect(id, data) {
    var html = \'\';
    for (var i = 0; i < data.length; i++) {
        html += "<option value=\'" + data[i].value + "\'>" + data[i].text+ "</option>";
    }
    $("#" + id).html(html);
}

四、重写数据加载方法(可判断初始化默认选中数据)

jQueryAjaxAsync("/systemRoleAction/roleListbox",null, function(res) {
        var Data = JSON.parse(res);
        console.log(Data)
        //注释了原有加载下拉框的方法
        // loadMultiSelect("msgRoles", Data);
        var myMap = new Map();
        for(var j=0;j<Data.length;j++){
            //塞入键值对
            myMap.set(Data[j].text,Data[j].value);
        }
        console.log(myMap);
        var mm=[];
        myMap.forEach(function(value, key) {
        //此部分应该获取后台初始选中的值,进行判断,给其加上selected:true属性
            if(value==100003 || value==100004){//写死的数据
             mm.push({label:key,value:value,selected:true})
            }else {
                mm.push({label:key,value:value});
            }
        })
        console.log(mm);
        $("#msgRoles").multiselect(\'dataprovider\', mm);
        $("#msgRoles").multiselect({
            buttonWidth : \'30%\',
            maxHeight : 150
        });
        $(\'#msgRoles\').multiselect(\'refresh\');

五、案例图