长表单拆分后字段值不丢失的关键是集中管理状态:用顶层formData对象统一存储所有字段(键名全局唯一),子表单仅通过updateField更新状态,localStorage写入放在beforeunload事件中防卡顿和脏数据。

长表单拆分后如何保证字段值不丢失
表单拆分最常踩的坑是「用户填到第二步,刷新页面,第一步数据全没了」。这不是浏览器问题,是你没接管状态生命周期。
关键动作有三件:集中存、统一写、按需持久化。
- 用一个顶层
formData对象存所有字段,键名保持全局唯一(如user.name、address.zipcode) - 每个子表单只调用
updateField(name, value)更新,禁止直接改input.value后不更新状态对象 -
localStorage写入必须放在beforeunload事件里,而不是每次input变化都写——否则用户快速打字会卡顿,且可能存入中间态脏值


















