当前位置: 首页 > news >正文

三级下拉联动

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head><th:block th:include="include :: header('新增家庭支出')" /><th:block th:include="include :: datetimepicker-css" /><style>.container {margin: 50px;font-family: sans-serif;}.select-group {display: flex;gap: 20px;margin-bottom: 20px;}select {padding: 8px 12px;border: 1px solid #ddd;border-radius: 4px;min-width: 180px;font-size: 14px;}.result {margin-top: 20px;padding: 10px;border: 1px dashed #666;border-radius: 4px;}</style>
</head>
<body class="white-bg"><div class="wrapper wrapper-content animated fadeInRight ibox-content"><form class="form-horizontal m" id="form-expense-add"><div class="col-xs-12"><div class="form-group"><label class="col-sm-3 control-label is-required">支出金额:</label><div class="col-sm-8"><input name="amount" class="form-control" type="text" required></div></div></div><div class="col-xs-12"><div class="form-group"><label class="col-sm-3 control-label">支出备注:</label><div class="col-sm-8"><textarea name="remark" class="form-control"></textarea></div></div></div><div class="col-xs-12"><div class="form-group"><label class="col-sm-3 control-label">支出地区:</label><input type="hidden" name="region" id="region" /><div class="container"><h3>省-市-区三级联动选择</h3><div class="select-group"><!-- 一级选择:省 --><select id="province"><option value="">请选择省份</option></select><!-- 二级选择:市 --><select id="city" disabled><option value="">请先选择省份</option></select><!-- 三级选择:区 --><select id="district" disabled><option value="">请先选择城市</option></select></div><!-- 选中结果展示 --><div class="result">选中结果:<span id="selectedResult">未选择</span></div></div></div></div><div class="col-xs-12"><div class="form-group"><label class="col-sm-3 control-label is-required">支出时间:</label><div class="col-sm-8"><div class="input-group date"><input name="expenseTime" class="form-control" placeholder="yyyy-MM-dd" type="text" required><span class="input-group-addon"><i class="fa fa-calendar"></i></span></div></div></div></div><div class="col-xs-12"><div class="form-group"><label class="col-sm-3 control-label">图片:</label><div class="col-sm-8"><input name="image" class="form-control" type="text"></div></div></div></form></div><th:block th:include="include :: footer" /><th:block th:include="include :: datetimepicker-js" /><script th:inline="javascript">var prefix = ctx + "system_expense/expense"$("#form-expense-add").validate({focusCleanup: true});function submitHandler() {if ($.validate.form()) {$.operate.save(prefix + "/add", $('#form-expense-add').serialize());}}$("input[name='expenseTime']").datetimepicker({format: "yyyy-mm-dd",minView: "month",autoclose: true});//三级联动选择const areaData = {"110000": {name: "北京市",cities: {"110100": {name: "北京市",districts: {"110101": "东城区","110102": "西城区","110105": "朝阳区","110106": "丰台区"}}}},"310000": {name: "上海市",cities: {"310100": {name: "上海市",districts: {"310101": "黄浦区","310104": "徐汇区","310105": "长宁区","310106": "静安区"}}}},"440000": {name: "广东省",cities: {"440100": {name: "广州市",districts: {"440103": "荔湾区","440104": "越秀区","440105": "海珠区"}},"440300": {name: "深圳市",districts: {"440303": "罗湖区","440304": "福田区","440305": "南山区"}}}}};// 获取DOM元素const provinceSelect = document.getElementById('province');const citySelect = document.getElementById('city');const districtSelect = document.getElementById('district');const resultSpan = document.getElementById('selectedResult');// 初始化省份下拉框function initProvince() {// 遍历省份数据,添加到下拉框for (const [code, province] of Object.entries(areaData)) {const option = document.createElement('option');option.value = code; // 存储省份编码option.textContent = province.name; // 显示省份名称provinceSelect.appendChild(option);}}// 根据选中的省份加载城市function loadCities(provinceCode) {// 清空城市和区的下拉框citySelect.innerHTML = '<option value="">请选择城市</option>';districtSelect.innerHTML = '<option value="">请先选择城市</option>';// 禁用/启用城市下拉框if (!provinceCode) {citySelect.disabled = true;districtSelect.disabled = true;return;}citySelect.disabled = false;// 加载对应省份的城市数据const cities = areaData[provinceCode].cities;for (const [code, city] of Object.entries(cities)) {const option = document.createElement('option');option.value = code;option.textContent = city.name;citySelect.appendChild(option);}}// 根据选中的城市加载区function loadDistricts(cityCode, provinceCode) {// 清空区的下拉框districtSelect.innerHTML = '<option value="">请选择区</option>';// 禁用/启用区下拉框if (!cityCode || !provinceCode) {districtSelect.disabled = true;return;}districtSelect.disabled = false;// 加载对应城市的区数据const districts = areaData[provinceCode].cities[cityCode].districts;for (const [code, districtName] of Object.entries(districts)) {const option = document.createElement('option');option.value = code;option.textContent = districtName;districtSelect.appendChild(option);}}// 更新选中结果function updateResult() {const provinceCode = provinceSelect.value;const cityCode = citySelect.value;const districtCode = districtSelect.value;if (!provinceCode) {resultSpan.textContent = '未选择';document.getElementById('region').value = ''; // 清空隐藏字段return;}// 拼接地区字符串(省-市-区)let region = areaData[provinceCode].name;if (cityCode) {region += ' - ' + areaData[provinceCode].cities[cityCode].name;}if (districtCode && cityCode) {region += ' - ' + areaData[provinceCode].cities[cityCode].districts[districtCode];}resultSpan.textContent = region;document.getElementById('region').value = region; // 赋值给隐藏字段}// 绑定事件监听provinceSelect.addEventListener('change', function() {const provinceCode = this.value;loadCities(provinceCode); // 加载对应城市updateResult(); // 更新结果});citySelect.addEventListener('change', function() {const provinceCode = provinceSelect.value;const cityCode = this.value;loadDistricts(cityCode, provinceCode); // 加载对应区updateResult(); // 更新结果});districtSelect.addEventListener('change', function() {updateResult(); // 更新结果});// 初始化页面initProvince();</script>
</body>
</html>

 

http://www.gsyq.cn/news/70133.html

相关文章:

  • 使用链接
  • 2025 杯盖机 + 纸碗机厂家综合指南:全伺服纸杯机制造商服务范围全覆盖(含超声波纸杯机 / 纸盘机)
  • 2025 年 12 月除甲醛服务权威推荐榜:专业检测与高效治理,让家清新无忧!
  • 深入解析:详解网络安全免杀对抗:攻防的猫鼠游戏
  • IGH EtherCAT 主站上 ARMxy的真实表现:稳定、快到离谱
  • lvm与非lvm扩容实验(在VMware中.Rocky Linux release 8.10 - 爱吃冰红茶
  • vxe-table 使用 spanMethod 合并卡顿的解决方案
  • 20232302 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 02-快速开始指南
  • iOS 异常捕获原理详解
  • 2025年天津钢管扣件租赁公司最新推荐榜,天津脚手架出租、天津脚手架搭设、天津移动脚手架、 天津钢管扣件出租、聚焦服务品质与业务竞争力深度剖析
  • 博士留学中介排名TOP10!适配需求的好机构推荐
  • 博士机构排行新榜,含申请亮点的十大实力留学机构
  • SMTP协议中基础邮件传输所需的往返时间分析
  • CH5xx BLE芯片复位排查方法
  • 第4天
  • 2025年数控机床钣金外壳优质供应商TOP5排名
  • 2025年徐州人力资源服务外包公司权威推荐榜单:人力资源外包公司‌/外包人力资源公司‌/人力资源外包服务‌源头公司精选
  • AI伦理误区:ABCD模型哲学体系
  • APP界面设计公司分享:物流APP工业风让数据高效可读
  • 2025 年 12 月激光切割机厂家推荐榜单:数控/小型/精密/金属/型材/钢板/大型/圆管/光纤,高效精准切割利器!
  • 2025年成都网络推广公司推荐,抖音代运营/新闻营销/抖音推广/小红书推广/SEO优化/网络推广企业排行榜
  • 【运维自动化-标准运维】如何创建流程嵌套(子流程)
  • 深入解析:微信小程序如何优雅地跳转外部链接?WebView + 复制方案实战
  • 2025年热镀锌带钢十大品牌权威榜单揭晓,镀锌打包带/打包带钢/玻璃打包带/光伏支架打包带/打包带/打包带钢/打包钢带热镀锌带钢企业哪个好
  • 2025年中国十大热处理服务商家推荐:看看哪家技术实力更强
  • 2025年成都值得信赖的网络推广服务商排行,网络推广/网络公关/GEO优化/SEO优化/网站建设/小红书代运营/小红书推广网络推广公司找哪家
  • 习题解析之:查找特征数
  • 云监控 UModel Explorer:用“图形化”重新定义可观测数据建模
  • 国产全自动咖啡机品牌推荐:高口碑国产品牌精选