跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

保留表单提交或页面刷新后两级联动下拉框的选中状态(纯前端实现)

本文介绍如何使用 localstorage 在纯前端环境下持久化保存两个依赖型下拉框(省/市)的用户选择,确保页面刷新或表单提交后仍自动恢复上次选中值,无需 php 服务端逻辑,完全基于 javascript 实现。 本文介绍如何使用 localstorage 在纯 前端 环境下持久化保存两个依赖型下拉框(省/市)的用户选择,确保页面刷新或 表单提交 后仍自动恢复上次选中值,无需 php 服务端逻辑,完全基于 javascript 实现。 在构建动态表单时,两级联动下拉框(如“省份 → 城市”)十分常见。当用户完成选择并提交表单,或因验证失败需回显数据时,若仅依赖服务端渲染(如 PHP 的 ),不仅代码冗余、维护困难,还违背了“客户端验证优先”的设计原则。本文提供一套 纯前端、轻量、可复用 的解决方案:利用 localStorage 持久化用户选择,并结合现代 DOM 操作与事件机制,实现选中状态的自动还原与联动更新。 ✅ 核心思路 使用 localStorage 存储用户最后一次成功选择的 province 和 city 值; 页面加载完成(DOMContentLoaded)后,优先从 localStorage 读取并设置下拉框值; 触发 change 事件手动激活联动逻辑(确保城市列表正确生成并选中); 在 change 事件监听器中实时更新 localStorage,保证状态同步。 ? 完整实现代码
两级联动下拉框状态保持
省份
城市
⚠️ 注意事项与最佳实践 setTimeout(..., 0) 的必要性 :由于 provinceSel.dispatchEvent('change') 是异步触发城市渲染,直接设置 citySel.value 可能因 DOM 尚未更新而失效;使用微任务延迟可确保城市

相关文章