学习layui之省市县三级联动

三级联动前端js代码
var isFirstOnload= true;   //layui存在在页面加载完之前就渲染select控件的原因,当我们在页面加载完毕,用avalon绑定数据的时候
                              //数据并不能绑定到对应控件,我们设一个全局变量,当第一次加载页面的时候,对这些控件赋初始值

$(function() {
    if (sStudentId!= null && sStudentId != ""&&sStudentId != undefined&& sStudentId!= "null") {
        var sData= {
            "token" : sToken,
            "student_id" : sStudentId
       
};
        $.ajax({
            type : "post",
            url: myRootUrl+ "/studentMgmt/queryStudentById.do",
            dataType:"json",
            contentType: "application/json",
            data: JSON.stringify(sData),
            async: false,
            success: function(data) {
                console.log(data);
                var student=data.data;
                vm.student_id=student.studentId;
                vm.student_code=student.studentCode?student.studentCode:"";
                vm.student_name=student.studentName?student.studentName:"";
                vm.student_gender=student.studentGender==1?"男":"女";
                vm.student_brithday=student.studentBrithday?newDate(student.studentBrithday).Format('yyyy-MM-dd'):"";
                vm.class_code=student.classCode?student.classCode:"";
                vm.student_card=student.studentCard?student.studentCard:"";
                vm.entrance_time=student.entranceTime?newDate(student.entranceTime).Format('yyyy-MM-dd'):"";
                vm.student_tel=student.studentTel?student.studentTel:"";
                vm.student_mobile=student.studentMobile?student.studentMobile:"";
                vm.student_address=student.studentAddress?student.studentAddress:"";
                vm.enroll_state=student.enrollState?student.enrollState:"";
                vm.card_type_name=student.cardTypeName?student.cardTypeName:"";
                vm.education_name=student.educationName?student.educationName:"";
                vm.nation_name=student.nationName? student.nationName:"";
                vm.political_status_name=student.politicalStatusName? student.politicalStatusName : "";
                vm.employed_state=student.employedState? student.employedState : "";
                vm.post=student.post? student.post"";
                vm.province_code=student.provinceCode? student.provinceCode:"";
                vm.graduation_school=student.graduationSchool? student.graduationSchool :"";
                vm.diploma_level=student.diplomaLevel? student.diplomaLevel : "";
                vm.diploma_type=student.diplomaType? student.diplomaType :"";
                vm.graduation_time=student.graduationTime?newDate(student.graduationTime).Format('yyyy-MM-dd'):"";
                vm.diploma_no=student.diplomaNo? student.diplomaNo :"";
                vm.city_code = student.cityCode ? student.cityCode:"";
                vm.county_code=student.countyCode? student.countyCode:"";
            }
        })
    }
    loadProvince();
});

layui.use(['form','laydate'],function(){
    var form=layui.form();
    var laydate=layui.laydate;

    //自定义验证规则
   
form.verify({
        length: function(value){
            if(value.length> 10){
                return '内容过多';
            }
        }
    });
    //监听提交
   
form.on('submit(formContact)',function(data){
        // layer.msg(JSON.stringify(data.field));
        // var formModel = data.field;

       
vm.student_gender= data.field.student_gender;
        vm.employed_state= data.field.employed_state;
        vm.province_code= data.field.province_code;
        vm.city_code= data.field.city_code;
        vm.county_code= data.field.county_code;
        vm.type= "contact";
        doOK();
    });

    form.on('submit(formBeforeLearn)',function(data){
        // layer.msg(JSON.stringify(data.field));
        // var formModel = data.field;

       
vm.diploma_level= data.field.diploma_level;
        vm.diploma_type= data.field.diploma_type;
        vm.type= "learn";
        doOK();
    });

    // form.render('select');
   
form.on('select(province_code)',function(data){//监听下拉选
       
loadCity
();
        form.render('select');         //渲染下拉选
   
})
    form.on('select(city_code)',function(data){
        loadCounty();
        form.render('select');
    })
});



//实现省市县三级联动方法在layui中需要加入监听事件和加载完后的重新渲染
function loadProvince(){
    var  preantId=0;
    $.ajax({
        type: "post",
        url: myRootUrl+ "/placeMgmt/loadPlace.do",
        dataType: "json",
        contentType: "application/json",
        data: JSON.stringify({
                "token" : sToken,
                "place_id":preantId

       
}),
        async: false,
        success: function(data) {
            $("#province_code").append("<optionvalue=''></option>");
            for(vari = 0; i < data.data.length; i++){
               $("#province_code").append("<option value='"+data.data[i].placeId+"'>"+data.data[i].name+"</option>");
           }


            loadCity();
        }
    })

}

function loadCity(){
    if(isFirstOnload){                   //判断是不是第一次加载,如果是第一次加载,将控件赋初始值
       
$("#province_code").val(vm.province_code);
    }

    var provinceId=$("#province_code").val();
    $("#city_code").children("option").remove();

    $.ajax({
        type: "post",
        url: myRootUrl+ "/placeMgmt/loadPlace.do",
        dataType: "json",
        contentType: "application/json",
        data: JSON.stringify({
            "token" : sToken,
            "place_id":provinceId

       
}),
        async: false,
        success: function(data) {
            $("#city_code").append("<option value=''></option>");
            for(vari = 0; i < data.data.length; i++){
                $("#city_code").append("<option value='"+data.data[i].placeId+"'>"+data.data[i].name+"</option>");
            }
            loadCounty();
        }
    })
}

function loadCounty(){
    $("#county_code").children("option").remove();
    if(isFirstOnload){
        $("#city_code").val(vm.city_code);
    }


    var cityId=$("#city_code").val();
    $.ajax({
        type: "post",
        url: myRootUrl+ "/placeMgmt/loadPlace.do",
        dataType: "json",
        contentType: "application/json",
        data: JSON.stringify({
            "token" : sToken,
            "place_id":cityId

       
}),
        async: false,
        success: function(data) {

            $("#county_code").append("<optionvalue=''></option>");
            for(vari = 0; i < data.data.length; i++){
                $("#county_code").append("<option value='"+data.data[i].placeId+"'>"+data.data[i].name+"</option>");
            }

        }
    })
    if(isFirstOnload){
        $("#county_code").val(vm.county_code);
    }
    isFirstOnload = false;
}

三级联动html

<div class="layui-form-item">
    <label class="layui-form-label">地区(市):</label>
    <div class="layui-input-inline">
        <select name="city_code" id="city_code"  ms-duplex="@city_code" lay-filter="city_code">
        </select>
    </div>
</div>
<div class="layui-form-item">
    <label class="layui-form-label">市(县):</label>
    <div class="layui-input-inline">
        <select name="county_code" id="county_code"  ms-duplex="@county_code" lay-filter="county_code">
        </select>
    </div>
</div>

 

 

三级联动后台java

 

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.dawn.bgSys.common.WebJsonUtils;
import com.dawn.bgSys.service.IPlaceService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

 

 

@RequestMapping(value = "/loadPlace",produces = "application/json;charset=UTF-8")
@ResponseBody
public String loadPlace(@RequestBody String jsonStr) throws Exception {

    String placeId = WebJsonUtils.getStringValue(jsonStr, "place_id", false);

    JSONObject jsonObject = this.placeService.queryPlaceByParentId(placeId);
    System.out.println(jsonObject);
    JSONObject json = new JSONObject();
    json.put("data",jsonObject.getJSONArray("data"));

    String str = JSONObject.toJSONString(json, SerializerFeature.WriteMapNullValue);
    return str;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值