一、html页面准备两个下拉菜单:
<span style="font-size:16px;">分公司:</span>
<select class="selectpicker" id="selectBranchOffice">
<option value="全部">全部</option>
<option value="一分公司">一分公司</option>
<option value="二分公司">二分公司</option>
<option value="三分公司">三分公司</option>
<option value="四分公司">四分公司</option>
</select>
<span style="font-size:16px;">车队:</span>
<select class="selectpicker" id="selectFleet"></select>
二、js实现下拉菜单联动
现在要完成的功能是:当选择不同的分公司时,车队下拉菜单下填充每个分公司对应的车队。
js代码:
//所选分公司改变
$('#selectBranchOffice').on("change", function () {
//获取所选值
var selectedValue = $('select#selectBranchOffice option:selected').text();
//先清空方向下拉菜单的option
document.getElementById("selectFleet").options.length = 0;
//根据分公司选择,查询对应的车队
$.ajaxSettings.async = false; //防止objson出现undefined,设置为同步
selectOptionChange(selectedValue);
})
function selectOptionChange(selectedValue) {
$.ajax({
url: "../../../api/LoadDropDownListData", //所需要的列表接口地址
type: "get",
data: { Value: selectedValue},//发送到服务器的数据,key/value形式
dataType: "json",
success: function (data) {
var listFleet = "";
// 根据返回的数据拼接option
$.each(data[0], function (key, item) {
listFleet += "<option value='" + item + "'>" + item + "</option>";
});
$("#selectFleet").append(listFleet); //填充selectFleet
//不能删下面俩行不然在ie下有问题
$('#selectFleet').selectpicker('refresh');
$('#selectFleet').selectpicker('render');
},
error: function () {
console.log("数据传送失败!");
}
});
}
这里根据所选分公司,然后和服务器交互,从SQL Server查询的车队信息。所以看起来可能比较复杂。
核心就是:查询所选项->清空原有内容->组织所需数据->填充下拉菜单