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

如何实现单表单通过localStorage向多个HTML页面传递数据

解决方案

不需要为每个目标页面单独创建独立表单,修改提交跳转逻辑即可实现需求。

问题根源

当前代码给form标签写死了action="main2.html",调用form.submit()时只会向这个固定地址提交跳转,自然无法分发到不同页面。
实际上你已经提前把输入内容存入了localStorage,同源部署的所有HTML页面都可以读取同一份localStorage数据,完全不需要依赖表单默认提交行为传值。

修改步骤

  • 移除form标签上固定的method和action属性,给四个提交按钮的点击事件分别传入对应要跳转的目标页面地址
  • 修改submitForm函数,接收目标页面参数,存完localStorage数据后直接通过页面跳转API跳到对应地址,不再调用form的默认submit方法

修改后的发送端HTML代码

<form id="form">
  <input
    class="name-input"
    type="text"
    placeholder="YOUR NAME"
    name="name"
    id="name"
  />
  <input
    class="button1"
    type="button"
    value="Submit"
    onclick="submitForm('main1.html')"
  />
  <input
    class="button2"
    type="button"
    value="Submit"
    onclick="submitForm('main2.html')"
  />
  <input
    class="button3"
    type="button"
    value="Submit"
    onclick="submitForm('main3.html')"
  />
  <input
    class="button4"
    type="button"
    value="Submit"
    onclick="submitForm('main4.html')"
  />
</form>

把代码里的main1~main4.html替换成你实际需要跳转的四个页面地址即可

修改后的发送端JS代码

function submitForm(targetPage) {
  const inputName = document.getElementById("name").value.trim();
  // 可选:输入为空时拦截提交
  if (!inputName) {
    alert("请先输入你的名字");
    return;
  }
  if (typeof localStorage != "undefined") {
    localStorage.name = inputName;
  }
  // 跳转到对应目标页面
  window.location.href = targetPage;
}

接收端说明

四个目标页面的现有代码不需要做任何修改,只要每个页面的body标签都保留onload="setData()"配置,页面加载时就会自动读取localStorage里存的名字并渲染到对应位置。

注意事项

该方案生效的前提是所有HTML页面部署在同一个域名(本地打开时需放在同一个文件夹路径下),满足同源策略要求即可正常共享localStorage数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:18:21