动态添加的 html 元素在表单提交后立即消失,根本原因是表单默认提交行为导致页面刷新,且 `dd` 元素未正确追加文本节点。本文详解修复方法:阻止默认提交 + 修正 dom 构建逻辑。
在使用 JavaScript 动态创建并插入 DOM 元素时,若元素“闪现即逝”,通常并非代码执行失败,而是页面发生了意外刷新。本例中,问题根源有两个关键点:
✅ 1. 表单提交触发了页面重载
在
⚠️ 注意事项:
-
始终检查父-子关系:appendChild() 的调用对象必须是目标父元素;文本节点不能直接作为
- 的子节点(合法子节点仅限
- 和
- )。
- 表单交互必防默认行为:只要不希望页面跳转或刷新,preventDefault() 是必备操作。
- 增强健壮性:可清空输入框、添加空值提示(如 || “(empty)”),或支持多次提交(避免重复插入相同内容)。
通过以上两步修正,动态生成的
- 列表将稳定保留在页面中,不再闪烁消失——这是前端表单 + 动态 DOM 操作的经典避坑实践。