省市区三级联动及回显

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>用户编辑</title>
    <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/easyui/jquery.easyui.min.js"></script>
<script src="${pageContext.request.contextPath }/js/easyui/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/js/easyui/themes/icon.css">
<script type="text/javascript">
$(function(){
//回显
var address =$("#caddress").val();
var addresss=address.split("-");
var province=addresss[0];
var city=addresss[1];
var district=addresss[2];
//初始化省
$.post("${pageContext.request.contextPath }/address/province.action",function(data){
$.each(data,function(i,n){
$option=$('<option value="'+n.id+'">'+n.province+'</option>');
$("#province").append($option);
if(n.province==province){
$("#province").val(n.id);
$("#province").change();

});
});
//联动市
$("#province").change(function(){
$.post("${pageContext.request.contextPath }/address/city.action",{pid:$("#province").val()},function(data){
$("#city option:not(:first)").remove();
$("#district option:not(:first)").remove();
$.each(data,function(i,n){
var $option=$('<option value="'+n.id+'">'+n.city+'</option>');
$("#city").append($option);
if(n.city==city){
$("#city").val(n.id);
$("#city").change();

});
});
});

//联动区
$("#city").change(function(){
$.post("${pageContext.request.contextPath }/address/district.action",{cid:$("#city").val()},function(data){
$("#district option:not(:first)").remove();
$.each(data,function(i,n){
var $option=$('<option value="'+n.id+'">'+n.district+'</option>');
$("#district").append($option);
if(n.district==district){
$("#district").val(n.id);

});
});
});
//设置按钮的点击事件
$("#save").click(function(){
var flag = $("#form").form("validate");
if(flag){
var result =$("#province").find("option:selected").text()
+"-"
+$("#city").find("option:selected").text()
+"-"
+$("#district").find("option:selected").text();
$("input[name=caddress]").val(result);
$("#form").submit();
}
});
});


</script>
  </head>
  <body class="easyui-layout">
    <div data-options="region:'center'" style="overflow:auto;padding:5px;" border="false">
    <form id="form" method="post" action="${pageContext.request.contextPath }/company/save.action">
    <input type="hidden" id="caddress" name="caddress" value="${company.caddress }"/>
    <input type="hidden" name="cid" value="${company.cid }"/>
    <table  align="center" cellspacing="6">
    <tr>
    <th colspan="4" align="center">店面信息</th>
    </tr>
    <tr>
    <td>省:</td>
    <td>
    <select id="province" style="width:150px">
    <option value="-1">---请选择省---</option>
    </select>
    </td>
    <td>市:</td>
    <td>
    <select id="city" style="width:150px" >
    <option value="-1">---请选择市---</option>
    </select>
    </td>
    </tr>
    <tr>
      <td>区:</td>
    <td>
    <select id="district" name="districtno" style="width:150px">
    <option value="-1">---请选择区---</option>
    </select>
    </td>
    <td width="90px">公司名称:</td>
    <td><input type="text" name="cname" value="${company.cname}" class="easyui-validatebox"/></td>
    </tr>
    </table>
    </form>
 
  </div>
  <div data-options="region:'south'" style="height:100px;">
<div class="datagrid-toolbar" align="center">
<a id="save" icon="icon-save" href="#" class="easyui-linkbutton" plain="true" >保存</a>
<a icon="icon-undo" onclick="javascript:history.back();" class="easyui-linkbutton" plain="true" >返回</a>
</div>
</div> 
  </body>

</html>

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


对于Vue+TypeScript和Element Plus的三级联动数据回显,可以按照以下步骤进行实现: 1. 首先,在Vue组件中定义省市区的数据源,可以使用数组或者对象的形式存储。例如: ```typescript data() { return { provinceList: [], // 省份数据源 cityList: [], // 城市数据源 districtList: [], // 区县数据源 selectedProvince: '', // 选中的省份 selectedCity: '', // 选中的城市 selectedDistrict: '', // 选中的区县 // 其他数据... }; }, ``` 2. 在组件的`mounted`生命周期钩子函数中初始化省份数据源,并根据选中的省份获取对应的城市和区县数据。例如: ```typescript mounted() { // 初始化省份数据源 this.provinceList = [ { id: 1, name: '北京' }, { id: 2, name: '上海' }, { id: 3, name: '广东' }, // 其他省份... ]; // 根据选中的省份获取城市和区县数据 this.fetchCityList(this.selectedProvince); this.fetchDistrictList(this.selectedCity); }, ``` 3. 实现方法`fetchCityList`和`fetchDistrictList`,用于根据选中的省份和城市获取对应的城市和区县数据。可以使用ajax、axios或者其他方式获取数据。例如: ```typescript methods: { fetchCityList(provinceId: number) { // 根据省份ID获取城市数据,此处假设省份ID与城市数据对应 this.cityList = [ { id: 11, name: '北京市' }, { id: 12, name: '天津市' }, { id: 13, name: '石家庄市' }, // 其他城市... ]; // 清空选中的城市和区县 this.selectedCity = ''; this.selectedDistrict = ''; }, fetchDistrictList(cityId: number) { // 根据城市ID获取区县数据,此处假设城市ID与区县数据对应 this.districtList = [ { id: 111, name: '东城区' }, { id: 112, name: '西城区' }, { id: 113, name: '朝阳区' }, // 其他区县... ]; // 清空选中的区县 this.selectedDistrict = ''; }, }, ``` 4. 在模板中使用`<el-select>`组件实现三级联动选择框,并绑定选中的值和数据源。例如: ```html <el-select v-model="selectedProvince" placeholder="请选择省份" @change="fetchCityList(selectedProvince)"> <el-option v-for="province in provinceList" :key="province.id" :value="province.id" :label="province.name"></el-option> </el-select> <el-select v-model="selectedCity" placeholder="请选择城市" @change="fetchDistrictList(selectedCity)"> <el-option v-for="city in cityList" :key="city.id" :value="city.id" :label="city.name"></el-option> </el-select> <el-select v-model="selectedDistrict" placeholder="请选择区县"> <el-option v-for="district in districtList" :key="district.id" :value="district.id" :label="district.name"></el-option> </el-select> ``` 通过以上步骤,就可以实现省市区三级联动数据回显的功能了。当选择省份时,会根据选中的省份动态获取对应的城市数据;当选择城市时,会根据选中的城市动态获取对应的区县数据。同时,选中的值会与`selectedProvince`、`selectedCity`和`selectedDistrict`进行双向绑定,以便在提交表单或其他操作时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值