三级联动的实现

较为粗糙的实现

jsp页面 地 址

选择省${p.get("name") }选择城市选择区县

<select id="provincecode">
  <option value="-1">选择省</option>
  <option value="${p.get('code') }">${p.get("name") }</option>
</select>

<select id="citycode">
  <option value="0">选择城市</option>
</select>

<select id="countycode">
  <option value="0">选择区县</option>
</select>
js代码,我建议放在html的尾端

$("#provincecode").blur(function(){
    //清楚value=0以外的值
    $("#citycode option[value!='0']").remove();
    var provincecode1=$("#provincecode").val();
    var data={"provincecode":provincecode1};
    var url="${BasePath}/userLogin/cityList.do";
    $.post(url,data ,function(str){
        var cityList=eval(str);
        for (var i = 0; i < cityList.length; i++) {
            
            $("#citycode").append("<option value ="+cityList[i].code+">"+cityList[i].name+"</option>");
            
        }
    });
});
/*联动获取区县列表 */
 $("#citycode").blur(function(){
    $("#countyId option[value!='0']").remove();
     var citycod=$("#citycode").val();
     var data={"citycode":citycod};
    var url="${BasePath}/userLogin/countyList.do";
     alert("快乐的一天!");
     $.post(url,data,function(str){
        
            var countyList=eval(str);
            for(var i = 0;i < countyList.length; i++){
                
                $("#countycode").append("<option value="+countyList[i].code+">" +countyList[i].name+"</option>");    
                 alert("快乐的一天!");
            }
     });
 });

Controller层代码

/**
     * 显示城市列表
     * @param provincecode
     * @param model
     * @return
     */
    @RequestMapping("/cityList.do")
    @ResponseBody
    public String getCityList(Integer provincecode,Model model){
        List<Map<String,Object>> cityList=userService.getCityList(provincecode);
         Gson jsn = new Gson();
         String str=jsn.toJson(cityList);
         System.out.println(str);
        return str;
    }
    /**
     * 显示区县列表
     * @param citycode
     * @param model
     * @return
     */
    @RequestMapping("/countyList.do")
    @ResponseBody
    public String getCountyList(Integer citycode,Model model){
        List<Map<String,Object>>countyList=userService.getCountyList(citycode);
        Gson jsn=new Gson();
        String str=jsn.toJson(countyList);
         System.out.println(str);
        return str;
    }

转载于:https://www.cnblogs.com/lcyxfei/p/6738220.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现全国的三级联动,需要先准备好完整的行政区划数据,包括省份、城市、区县三个层级的数据。一般可以从国家统计局等官方渠道获取。 在Vue中使用三级联动,可以使用v-model绑定一个数组,数组中存放三个变量,分别表示当前选中的省、市、区县。 下面是一个简单的示例代码: ```html <template> <div> <select v-model="selectedProvince" @change="provinceChange"> <option value="">请选择省份</option> <option v-for="province in provinces" :value="province">{{ province.name }}</option> </select> <select v-model="selectedCity" @change="cityChange"> <option value="">请选择城市</option> <option v-for="city in cities" :value="city">{{ city.name }}</option> </select> <select v-model="selectedDistrict"> <option value="">请选择区县</option> <option v-for="district in districts" :value="district">{{ district.name }}</option> </select> </div> </template> <script> export default { data() { return { provinces: [], // 省份列表 cities: [], // 城市列表 districts: [], // 区县列表 selectedProvince: null, // 当前选中的省份 selectedCity: null, // 当前选中的城市 selectedDistrict: null // 当前选中的区县 }; }, mounted() { // 在这里获取省份数据 // this.provinces = ... }, methods: { provinceChange() { // 在这里获取对应的城市数据 // this.cities = ... this.selectedCity = null; this.selectedDistrict = null; }, cityChange() { // 在这里获取对应的区县数据 // this.districts = ... this.selectedDistrict = null; } } }; </script> ``` 在mounted钩子函数中,可以加载省份数据。当省份选择框的值发生变化时,使用provinceChange方法获取对应的城市数据,并清空城市和区县的选择框。当城市选择框的值发生变化时,使用cityChange方法获取对应的区县数据,并清空区县选择框。 需要注意的是,获取数据的时候,可以使用axios等库发送异步请求,也可以使用本地的JSON文件等静态数据。具体实现方式可以根据实际情况选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值