如何在 HTML 页面间传递并自动填充邮箱字段值

15次阅读

如何在 HTML 页面间传递并自动填充邮箱字段值

本文介绍如何将用户在第一个登录页输入的邮箱地址,通过前端方式(如 localstorage)传递到第二个 otp 验证页,并自动填充到对应输入框中,无需后端参与,适合初学者快速实现。

要在两个独立的 html 页面之间传递表单数据(例如邮箱),最轻量、易上手的方案是使用浏览器提供的 localStorage —— 它允许你在当前域名下持久化保存字符串数据,且页面跳转后仍可读取。

✅ 实现步骤详解

第一步:在首页(登录页)保存邮箱值

你需要为表单添加 id=”loginForm”(便于 js 获取),并在提交前将邮箱存入 localStorage。注意:原代码中表单未设 ID,需补充;同时建议阻止默认提交行为(避免未保存就跳转),改用 window.location.href 显式跳转:

{% csrf_token %}

⚠️ 注意:localStorage 是同源(协议+域名+端口)存储,确保两页在同一域名下(如都为 http://localhost:8000/),否则无法读取。

第二步:在第二页(OTP 页)自动填充邮箱

为邮箱输入框设置 id=”mail”(你已存在),然后在页面加载完成后从 localStorage 中读取并赋值:

  

✅ 推荐使用 domContentLoaded 而非 window.onload,因前者在 DOM 构建完成即触发,不等待图片等资源,响应更快。

立即学习前端免费学习笔记(深入)”;

? 其他可行方案对比(简要)

方案 优点 缺点 适用场景
localStorage 简单、持久、无需后端 同源限制;用户清除缓存会丢失 快速原型、内部系统
URL 查询参数(?email=xxx) 无存储依赖,跨域也可传(需接收页解析) 邮箱暴露在地址栏;长度受限;需手动编码/解码 轻量跳转、调试友好
sessionStorage 页面会话级,关闭标签页即失效,更安全 跳转后若刷新或新开标签会丢失 临时性数据,强调会话隔离
后端传递(django request.session 或 GET 参数) 安全可靠、可控性强 需服务端逻辑,对初学者稍复杂 生产环境推荐

✅ 最佳实践建议

  • 始终校验输入前端保存前检查邮箱格式(可用正则 /^S+@S+.S+$/);
  • 清理冗余数据:OTP 验证成功后,建议调用 localStorage.removeItem(‘userEmail’) 避免残留;
  • 兼容性兜底:可增加 trycatch 包裹 localStorage 操作,防止隐私模式下报错;
  • 无障碍友好:自动填充后,确保焦点可到达该输入框(如 document.getElementById(‘mail’).focus())。

通过以上方式,你就能在不依赖后端的前提下,流畅实现跨页表单数据传递——简洁、可靠,且完全符合现代 Web 开发规范。

text=ZqhQzanResources