根据数据库字典项完成地区二级联动

本文介绍了一个使用JavaScript实现的地区二级联动选择器。该选择器基于后台提供的JSON数据,通过监听第一级选择变化来动态更新第二级选项。文章包含了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为后台准备好了地区的数据,现在需要根据后台返回来的json格式数据完成地区的二级联动

function initAreaSelect(firstLevelId, secondLevelId) {
  var firstLevel=document.getElementById(firstLevelId);
  var secondLevel=document.getElementById(secondLevelId);
  //插入第一级数据
  for (var i=0; i<localArea.data.children.length; i++) {
    var firstLevelNode=localArea.data.children[i];
    var optionNode = document.createElement("option");
    optionNode.text=firstLevelNode.name;
    optionNode.value=firstLevelNode.id;
    firstLevel.appendChild(optionNode);
  }
  //第一级改变时,修改第二级的select
  firstLevel.onchange=function() {
    var selectId=firstLevel.options[firstLevel.selectedIndex].value;
    var selectName=firstLevel.options[firstLevel.selectedIndex].text;
    var formatFirstLevel = selectId +"-"+selectName;
    var sLength=secondLevel.length;
    for (var i=0; i<sLength; i++) secondLevel.remove(0);
    for (var i=0; i<localArea.data.children.length; i++) {
      var firstLevelNode=localArea.data.children[i];
      if (firstLevelNode.id==selectId) {
        if (firstLevelNode.children) {
          var optionNode = document.createElement("option");
          optionNode.text="请选择";
          optionNode.value=-1;
          secondLevel.appendChild(optionNode);
          for (var j=0; j<firstLevelNode.children.length; j++) {
            var secondLevelNode=firstLevelNode.children[j];
            var optionNode = document.createElement("option");
            optionNode.text=secondLevelNode.name;
            optionNode.value=secondLevelNode.id;
            secondLevel.appendChild(optionNode);
          }
        }
        break;
      }
    }
    secondLevel.onchange=function() {
	  var selectId=secondLevel.options[secondLevel.selectedIndex].value;
	  var selectName=secondLevel.options[secondLevel.selectedIndex].text;
	  var formatSecondLevel = selectName +"-"+selectId;
	  $("#localworkarea").val(formatFirstLevel +","+formatSecondLevel);
	}
  }
}
initAreaSelect("workCity", "workArea");

  

转载于:https://www.cnblogs.com/TigerZhang-home/p/8268978.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值