- 省市县 三级联动,是业务代码经常遇到的场景,不清楚的话代码写的很繁琐,还使用到了同步,影响性能。
这里记录js实现的代码思路
思路说明 : 三级联动实现主要是根据 上级代码编号,带出下级所有信息
例如: 选择 安徽省的代码006,根据安徽的编号代码006 ,后端查询出所有的市级,并展示。
再选择 市级的代码006XXX,根据合肥市00601,后端查询出所有的区县,并展示。
初始化一个“请选择”避免刚加载就查询。
//获取市级下拉
function getSj() {
var html = ["<option value=''>请选择</option>"];
var sf = $("#省份id").val();
if(sf){
$_ajax({
url: url地址,
data: {
sf: 市所属省
},
success: function (data) {
if(data && data.length){
for(var ii = 0; ii < data.length; ii++){
html.push("<option value='" + data[ii].市级_DM + "'>" + data[ii].市级_MC + "</option>");
}
}
$("#市级Id").html(html.join(""));
}
});
}else{
$("#市级Id").html(html.join("")).trigger("change");
}
}
//获取县下拉
function getXq() {
var html = ["<option value=''>请选择</option>"];
var sj = $("#市级id").val();
if(sj){
$_ajax({
url: url地址,
data: {
sj: 市的代码
},
success: function (data) {
if(data && data.length){
for(var ii = 0; ii < data.length; ii++){
html.push("<option value='" + data[ii].县区_DM + "'>" + data[ii].县区_MC + "</option>");
}
}
$("#县区").html(html.join(""));
}
});
}else{
$("#县区").html(html.join("")).trigger("change");
}
}