周易八字排盘

传承千年命理智慧 · 洞悉人生运势起伏

📚 经典古籍 登录/注册 💬 添加微信
📝 输入生辰信息
公历
农历
const provinceSelect = document.getElementById('province'); const citySelect = document.getElementById('city'); const districtSelect = document.getElementById('district'); // 标记是否已手动触发 let provinceChanged = false; let cityChanged = false; // 更新城市列表 function updateCities(province, skipDistrictUpdate) { if (!province) return; // 保存当前城市值(如果有) const currentCity = citySelect.value; citySelect.innerHTML = ''; if (!skipDistrictUpdate) { districtSelect.innerHTML = ''; } if (citiesData[province]) { citiesData[province].forEach((city, index) => { const option = document.createElement('option'); option.value = city; option.textContent = city; citySelect.appendChild(option); }); // 如果有保存的城市值且在新列表中,选中它 if (currentCity && citySelect.querySelector(`option[value="${currentCity}"]`)) { citySelect.value = currentCity; } else { // 否则选中第一个城市 citySelect.selectedIndex = 1; } // 触发城市更新 if (!skipDistrictUpdate) { updateDistricts(citySelect.value); } } } // 更新区县列表 function updateDistricts(city) { if (!city) return; districtSelect.innerHTML = ''; if (districtsData[city]) { districtsData[city].forEach((district, index) => { const option = document.createElement('option'); option.value = district; option.textContent = district; districtSelect.appendChild(option); }); // 默认选中第一个区县 if (districtSelect.options.length > 1) { districtSelect.selectedIndex = 1; } } } // Province change - 同时监听多个事件以确保移动端兼容 function handleProvinceChange() { const province = this.value; if (province && !provinceChanged) { provinceChanged = true; updateCities(province); // 重置标记,允许下次选择 setTimeout(() => { provinceChanged = false; }, 100); } } provinceSelect.addEventListener('change', handleProvinceChange); // 移动端额外支持:监听 input 事件 provinceSelect.addEventListener('input', handleProvinceChange); // City change function handleCityChange() { const city = this.value; if (city && !cityChanged) { cityChanged = true; updateDistricts(city); setTimeout(() => { cityChanged = false; }, 100); } } citySelect.addEventListener('change', handleCityChange); citySelect.addEventListener('input', handleCityChange); // 从Cookie恢复表单数据 function getCookie(name) { const value = '; ' + document.cookie; const parts = value.split('; ' + name + '='); if (parts.length === 2) return decodeURIComponent(parts.pop().split(';').shift()); return ''; } // 直辖市列表 const municipalities = ['北京市', '天津市', '上海市', '重庆市']; // 恢复省市区 const savedProvince = getCookie('bazi_province'); const savedCity = getCookie('bazi_city'); const savedDistrict = getCookie('bazi_district'); function restoreLocation() { if (!savedProvince) return; // 设置省份 provinceSelect.value = savedProvince; // 触发省份变化 const province = savedProvince; const isMunicipality = municipalities.includes(province); // 清空并填充城市 citySelect.innerHTML = ''; districtSelect.innerHTML = ''; if (citiesData[province]) { citiesData[province].forEach((city, index) => { const option = document.createElement('option'); option.value = city; option.textContent = city; citySelect.appendChild(option); }); // 设置城市(直辖市用"市辖区") const cityToSelect = savedCity || (isMunicipality ? '市辖区' : citiesData[province][0]); if (citySelect.querySelector(`option[value="${cityToSelect}"]`)) { citySelect.value = cityToSelect; } // 触发城市变化以加载区县 const city = citySelect.value; if (districtsData[city]) { districtsData[city].forEach((district, index) => { const option = document.createElement('option'); option.value = district; option.textContent = district; districtSelect.appendChild(option); }); // 设置区县 if (savedDistrict && districtSelect.querySelector(`option[value="${savedDistrict}"]`)) { districtSelect.value = savedDistrict; } else if (districtSelect.options.length > 1) { districtSelect.selectedIndex = 1; } } } } // 页面加载完成后恢复 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', restoreLocation); } else { restoreLocation(); }
×
📱 添加微信获取专业解读
微信二维码
扫描二维码添加微信
获取专业命理师一对一解读