You need to enable JavaScript to run this app. 如何仅用JS从一个HTML表单获取数据并在另一HTML页面展示
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用JS从一个HTML表单获取数据并在另一HTML页面展示

问题1解答:可以仅使用一个JS文件实现该需求

实现方式如下:
将两个页面所需的逻辑都写入同一个JS文件,两个HTML页面都引入该文件即可。逻辑中通过判断当前页面是否存在对应元素,执行对应页面的业务代码,示例如下:

// 公共JS文件(比如命名为common.js)
// 第一个页面逻辑:处理用户名存储
const loginInput = document.getElementById('login')
const logarBtn = document.getElementById('logar')
const tipEl = document.getElementById('spanlogin')
if (loginInput && logarBtn && tipEl) {
  logarBtn.addEventListener('click', function(e) {
    const inputVal = loginInput.value.trim()
    // 非空校验
    if (!inputVal) {
      e.preventDefault() // 阻止跳转
      tipEl.textContent = '请输入用户名后再登录'
      return
    }
    localStorage.setItem('thelogin', inputVal)
  })
}

// 第二个页面逻辑:处理用户名展示
const showLoginEl = document.getElementById('showlogin')
if (showLoginEl) {
  window.addEventListener('load', function() {
    const savedLogin = localStorage.getItem('thelogin')
    showLoginEl.textContent = savedLogin || '未获取到登录信息'
  })
}

两个HTML页面都将引入的JS路径改为该公共文件即可:

<script src="common.js"></script>

问题2解答:你的代码无法正常运行有两个核心问题

问题1:第一个页面存储时机错误

你当前的JS逻辑是页面加载完成后立刻读取输入框的值存入localStorage,此时用户还没有输入任何内容,存入的永远是空字符串。你需要将存储逻辑绑定到「点击登录按钮」的事件上,在跳转前读取用户输入的内容存储。

问题2:第二个页面事件绑定错误

你写的window.onload = showthelogin()是直接执行showthelogin函数,此时页面DOM还没有完成渲染,找不到id为showlogin的元素,导致赋值失败。正确的写法是去掉函数后的括号,将函数本身绑定给onload事件:

// 正确写法1
window.onload = showthelogin
// 更推荐的写法2,避免事件覆盖
window.addEventListener('load', showthelogin)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 01:06:02