You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行innerHTML修改操作后页面内容会立即恢复原状?

问题解析:表单提交导致页面刷新的原理

嘿,我来帮你搞清楚这个现象背后的逻辑~

核心原因:表单按钮的默认提交行为

你遇到的内容消失问题,本质是浏览器对表单内<button>元素的默认处理逻辑:

  • 在<form>标签内的<button>,如果没有指定type属性,浏览器会默认把它识别为type="submit"——也就是“表单提交按钮”。
  • 当你点击这个按钮时,浏览器会自动触发表单的提交动作:它会尝试把表单数据发送到表单的action地址(你没设置action的话,就默认提交到当前页面的URL)。
  • 表单提交后,浏览器会重新加载整个页面,页面上所有DOM元素都会回到你写的HTML初始状态,所以你通过convert()函数修改的convDate内容,自然就被重置消失了。

为什么按住Ctrl点击会保留内容?

这是浏览器的快捷键交互逻辑:
当你按住Ctrl(Mac上是Cmd)点击按钮时,浏览器会把这个操作解析为**“在新标签页打开该元素关联的资源”**,而不是触发按钮的默认表单提交行为。这时候,原来的页面并没有被刷新,你之前通过JavaScript修改的DOM内容还留在原页面里,所以看起来内容“保留”了。

你的代码小细节

你的convert()函数里有一行冗余代码:

var conValue = document.getElementById('convDate').value;

<h2>元素并没有value属性,而且这个变量也没被用到——不过这和你遇到的页面刷新问题无关,只是个小细节~

(如果你想验证这个原理,只需要给按钮加上type="button",它就不会触发表单提交了,修改后的内容会一直保留,但你说不需要帮忙完成应用,所以这只是个验证小技巧😉)

内容的提问来源于stack exchange,提问作者user17949142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:17:32