您的位置:首页 > Web前端 > BootStrap

bootstrap multiselect插件级联选择框操作 内容从json文件获取

2017-12-10 20:37 519 查看
在开发中经常用到bootstrap插件 这几天发现了一个multiselect插件 选择框插件 很好用 整理一下Demo 供大家参考

在项目中用到选择框一般涉及到级联选择操作 数据是从json文件获取或者从数据库读取出数据

首先 使用这个插件需要导入一系列依赖的js文件和css文件 这个可以从官方demo获取

然后准备json数据 先读取本地json 做一个省 县 市 的筛选

json文件读者下去自备

HTML代码

<!-- json文件级联操作 -->
<br><br>
<div  style="width:1000px">

  <label style="float: left;">省</label>
<select multiple="multiple" style="width:150px" id="sel_jilian_1" >
<option value="hn" >河南</option>
<option value="hb">河北</option>
</select>
<label >市</label>
<select multiple="multiple" style="width:150px" id="sel_jilian_2">
</select>
<label >县</label>
<select multiple="multiple" style="width:150px" id="sel_jilian_3">
</select>

</div>


第一个选择省是写好的数据 (读者也可以自定义 添加json里的数据 动态添加)主要注意value的值 一会根据这个值选择json文件

然后写js 

js思路是:这个multiselect插件提供的有选择框选择触发的事件,onClick 事件 选择数据后调用 然后先选择省 获取选择的是哪个省 根据这个值 在选择调用哪一个json文件 把数据动态添加到下一个选择框中 添加之前 要先清空一下选择框里的数据 这个是为了防止多次选择省后面的数据没有清空。

详情看下面代码 访问数据库时 可以参考我注释的那段代码 jquery的ajax方法 访问数据库 根据访问返回的json数据进行页面动态添加数据

<script type="text/javascript">
$("#sel_jilian_1").multipleSelect({

placeholder: "---选择省---",
selectAll: false,
single:true,
onClick:function(view){
/* alert(view.value);
var a ="sheng_"+view.value+".json";
alert(a); */
var id="sel_jilian_2";
var xz_id="sel_jilian_1"
view_json(view,id,xz_id);

}

});

$("#sel_jilian_2").multipleSelect({
placeholder: "---选择市---",
selectAll: false,
single:true,
onClick:function(view){
/* alert(view.value);
var a ="sheng_"+view.value+".json";
alert(a); */
var id="sel_jilian_3";
var xz_id="sel_jilian_2"
view_json(view,id,xz_id);
}
});

$("#sel_jilian_3").multipleSelect({

placeholder: "---选择县---",
selectAll: false,
single:true
});

function view_json(view,id,xz_id){
//alert("选中的值"+view.html);
alert("选中的值: " + $("#"+xz_id).multipleSelect('getSelects', 'text'));
//var b=[{"id":"1","uname":"龚世赟"},{"id":"2","uname":"靳鎧歌"},{"id":"3","uname":"沙家聪"}];
var json=view.value+".json";
//清空内容
$("#sel_jilian_3").empty().multipleSelect("refresh");
$("#sel_jilian_2").empty();

//读取本地json文件
$.getJSON(json, function (data){
$.each(data, function (infoIndex, info){
$opt = $("<option />", {
value: info["id"],
text: info["uname"]
});
$("#"+id).append($opt).multipleSelect("refresh");
})
})

//连接数据库获取服务器中的json文件  没有写action文件 没写数据库获取不了数据库
/* $.ajax({
//请求方式为get
type:"POST",
//json文件位置
url:"getJSON.action",
//返回数据格式为json
dataType: "json",
//请求成功完成后要执行的方法
success: function(data){
//使用$.each方法遍历返回的数据date,插入到id为#result中
$.each(data,function(i,item){
//alert(item.id);
$opt = $("<option />", {
value: item.id,
text: item.uname
});
$("#"+id).append($opt).multipleSelect("refresh");
})
}
})   */

}

</script>


此代码 可进行优化一下 将onClick事件更改为onChange事件 输入框内容改变时才会访问json文件 否则就不访问json文件了。谢谢阅读。

By it_noone 一个进阶中的码农
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐