当前位置: 首页 > news >正文

html实现登录与注册功能案例(不写死且只使用js)

目录

案例需求

实现思路

代码参考

login.html

register.html 

运行效果

 升级思路


案例需求

需要一个登录界面和注册页面实现一个较为完整的登录注册功能

1.登录界面没有登录限制需求(降低难度),实现基本的登录判断需求,弹窗出现登录失败和登录成功就行了

2.当点击登录界面里面的注册按钮,跳转到注册页面

3.注册页点击注册,弹窗出现注册成功并跳转回登录页面就行了,不做账户重复注册等其他判断(降低难度)

实现思路

界面就很简单,两个界面都用<input>实现用户名和密码的输入框,登录界面之比注册页面多一个登录按钮。

在登录界面点击登录按钮触发事件判断实现账户密码判断。

点击注册按钮,绑定事件,使用window.location.href 方法绑定跳转页面,实现页面跳转。

在注册页面需要使用sessionStorage.setItem()来传递数据

登录界面需要使用sessionStorage.getItem()来接受注册界面传递过来的数据

代码参考

login.html

用户名:<input type="text" id="username">
密码:<input type="password" id="password">
<button onclick="login()">登录</button>
<button onclick="register()">注册</button>
<script>const username01 = sessionStorage.getItem("username");const password01 = sessionStorage.getItem("password");function login() {let username = document.getElementById("username").value;let password = document.getElementById("password").value;if (username === username01 && password === password01) {alert("登录成功");}else {alert("登录失败");}}function register() {window.location.href = "zhuce.html";}
</script>

register.html 

<div>欢迎来到注册页面</div>
<div>用户名:<input type="text" id="username"></div>
<div>密码:<input type="password" id="password"></div>
<div><button onclick="register()">注册</button></div>
<script>let map = new Map();function register() {let username = document.getElementById("username").value;let password = document.getElementById("password").value;if (username!=null && password!=null){map.set("username",username);map.set("password",password);// console.log(map.get("username"));// console.log(map.get("password"));sessionStorage.setItem("username",map.get("username"));sessionStorage.setItem("password",map.get("password"));window.location.href = "login.html";alert("注册成功")}else{alert("请填写用户名和密码")}}</script>

运行效果

 

 升级思路

可不可以限制登录次数进行死锁?如有需要参考html使用JS实现账号密码登录的简单案例_html<script>标签验证账号密码框的代码-CSDN博客

 账号注册数据只是进行一次性储存,当重新运行该页面的时候会清空。如何储存账户密码或者检测账户重复注册的问题等。

这个是我灵光一闪思考想到对前面的简单案例升级,不满足将用户名写死,导致登录不灵活的问题。希望本篇文章对你有提升,同时也是记录我成长的对案例思考的方式。

相关文章:

  • Ubuntu编译ffmpeg解决错误:ERROR: avisynth/avisynth_c.h not found
  • Kafka性能压测报告撰写
  • Vue3中使用 Vue Flow 流程图方法
  • 103. 2017年蓝桥杯省赛 - 日期问题(困难)- 暴力枚举
  • (哈希)128. 最长连续序列
  • 华为ModelArts详解
  • 使用 mysql2/promise 模块返回以后,使用 await 返回数据总结
  • 时序数据库概念及IoTDB特性详解
  • C++位图
  • FPGA基础 -- Verilog 命名事件
  • Debian配置Redis主从、哨兵
  • Rsync+sersync实现数据实时同步(小白的“升级打怪”成长之路)
  • C++实现异步(重叠)管道通信
  • GameFormer论文阅读
  • 46道Jenkins高频题整理(附答案背诵版)
  • 什么是Nacos?
  • Docker+Jenkins+git实现Golang项目自动部署
  • Git(三):分支管理
  • 深入理解Zephyr Manifest:现代嵌入式开发的项目管理利器
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的CCE容器高可用部署Dify-LLM应用开发平台
  • 江西核工业建设有限公司网站/万网域名购买
  • 网站怎么做mip技术/百度快照怎么优化排名
  • 台湾网友做的二次元炒股网站/关键词查询神器
  • 扶贫基金会网站建设是哪家公司/深圳网络推广网站推广
  • 360做网站多少钱一年/网络营销的五个发展阶段
  • 网站建设报价明细/关键词挖掘长尾词