登录,注册HTML页面,详细过程

2023-10-26

1. 页面说明

        登录和注册切换按钮,当点击登录按钮时,显示登录表单,当点击注册按钮时,显示注册表单。每个表单都有对应的 JavaScript 校验函数,校验用户名、邮箱和密码是否为空,如果为空,会弹出警告框。

2. 效果图展示

 3. 代码部分

3.1 HTML部分

<!DOCTYPE html>
<html>
<head>
  <title>登录/注册</title>
  <link rel="stylesheet" href="styles.css">
  <script>
    function showLoginForm() {
      document.getElementById('loginForm').style.display = "block";
      document.getElementById('registerForm').style.display = "none";
    }

    function showRegisterForm() {
      document.getElementById('loginForm').style.display = "none";
      document.getElementById('registerForm').style.display = "block";
    }

    function validateLoginForm() {
      var username = document.forms["loginForm"]["username"].value;
      var password = document.forms["loginForm"]["password"].value;

      if (username == "") {
        alert("请输入用户名");
        return false;
      }

      if (password == "") {
        alert("请输入密码");
        return false;
      }
    }

    function validateRegisterForm() {
      var username = document.forms["registerForm"]["username"].value;
      var email = document.forms["registerForm"]["email"].value;
      var password = document.forms["registerForm"]["password"].value;

      if (username == "") {
        alert("请输入用户名");
        return false;
      }

      if (email == "") {
        alert("请输入邮箱");
        return false;
      }

      if (password == "") {
        alert("请输入密码");
        return false;
      }
    }
  </script>
</head>
<body>
  <div class="container">
    <h2>登录/注册</h2>
    <div class="tabs">
      <button class="tab" onclick="showLoginForm()">登录</button>
      <button class="tab" onclick="showRegisterForm()">注册</button>
    </div>

    <!-- 登录表单 -->
    <form id="loginForm" name="loginForm" style="display: none;" onsubmit="return validateLoginForm()">
      <div class="form-group">
        <label for="loginUsername">用户名:</label>
        <input type="text" id="loginUsername" name="username" required>
      </div>
      <div class="form-group">
        <label for="loginPassword">密码:</label>
        <input type="password" id="loginPassword" name="password" required>
      </div>
      <div class="form-group">
        <button type="submit">登录</button>
      </div>
    </form>

    <!-- 注册表单 -->
    <form id="registerForm" name="registerForm" style="display: none;" onsubmit="return validateRegisterForm()">
      <div class="form-group">
        <label for="registerUsername">用户名:</label>
        <input type="text" id="registerUsername" name="username" required>
      </div>
      <div class="form-group">
        <label for="registerEmail">邮箱:</label>
        <input type="email" id="registerEmail" name="email" required>
      </div>
      <div class="form-group">
        <label for="registerPassword">密码:</label>
        <input type="password" id="registerPassword" name="password" required>
      </div>
      <div class="form-group">
        <button type="submit">注册</button>
      </div>
    </form>
  </div>
</body>
</html>

3.2 CSS部分

创建一个名为 styles.css 的新文件,并将以下样式添加到该文件中:

body {
  font-family: Arial, sans-serif;
  background-color: #f2f2f2;
}

.container {
  max-width: 400px;
  margin: 0 auto;
  padding: 20px;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
}

h2 {
  text-align: center;
  margin-bottom: 30px;
}

.tabs {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}

.tab {
  flex-basis: calc(50% - 10px);
  padding: 10px;
  background-color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.tab:hover {
  background-color: #f2f2f2;
}

.form-group {
  margin-bottom: 15px;
}

.form-group label {
  display: block;
  margin-bottom: 5px;
}

.form-group input {
  width: 100%;
  padding: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.form-group button {
  width: 100%;
  padding: 10px;
  background-color: #4CAF50;
  color:#fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.form-group button:hover {
background-color: #45a049;
}

以上示例添加了一些基本的样式,包括容器样式、标题样式、选项卡样式和表单样式。可以根据需要进行进一步的美化和自定义。记得将这两个代码块分别保存在 `index.html` 和 `styles.css` 文件中,并确保它们在同一目录下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录,注册HTML页面,详细过程 的相关文章

随机推荐

  • user-cf的理解-初衷

    使用user cf的初衷 以前的推荐算法 往往是基于内容标签的推荐 比如 用户喜欢了 数据挖掘导论 这本书 而这本书有 数据挖掘 这个标签 那么就给这个用户推荐 其他的 数据挖掘 类的图书 标签就像媒介一样 即是物品 即item 的属性 又
  • 互联网晚报

    今日看点 哪吒汽车第10万台量产车下线 仅用42个月 2022年首家银行理财子公司 浦银理财正式开业 京东成全国首批支持第三方商家接入数字人民币的企业 亚虹医药在科创板挂牌上市 A股迎来 泌尿生殖肿瘤第一股 刘慈欣 三体 英文版权以125万
  • 骚操作-CSDN浏览器助手已上线(就是个Chrome插件...)

    目录 概述 一 插件安装 1 进入csdn插件官网 2 本地下载csdn插件测试包 3 安装csdn插件测试包 4 解压csdn插件测试包并上传 5 开启csdn插件 6 查看插件信息 7 在新标签页中打开插件 二 功能测试 2 1 功能测
  • 图解!2023年国家社科基金年度项目

    9月4日 全国哲学社会科学工作办公室公示了2023年国家社科基金年度项目 其中重点项目有397项 一般项目有3185项 学术点滴 将重点项目和一般项目合并 利用DIKW软件统计和可视化 在国家社科基金年度项目中华东师范大学 中国人民大学 四
  • TCP/IP详解 卷1:协议 学习笔记 第二十三章 TCP的保活定时器

    一个TCP连接建立 然后经过任意时间 且中间路由器可以崩溃和重启 电话线可以挂断再接通 而连接依然保持 只要两端主机没有被重启 这意味着两端不交换任何信息 然而许多时候一个服务器希望知道客户主机是否崩溃 许多实现提供的保活定时器可提供这种能
  • Arthas监控java程序

    安装 1 解压缩arthas的压缩包 unzip arthas packaging bin zip 2 安装Arthas cd arthas install local sh 启动 以脚本的方式启动as sh 如图为启动成功 监控命令使用
  • 01. Windows基础:Dos命令

    文章目录 本文中的命令示例统一使用 来代表可以替换的内容 在使用时请不要真的输入 谢谢 0 Dos简介 1 目录相关 1 1 进入目录 1 2 进入另一个磁盘分区 1 3 列出当前目录下所有文件及文件夹 2 文件操作 2 1 浏览文件 2
  • 华为OD机试 - 相对开音节(Java)

    题目描述 相对开音节构成的结构为 辅音 元音 aeiou 辅音 r除外 e 常见的单词有bike cake等 给定一个字符串 以空格为分隔符 反转每个单词中的字母 若单词中包含如数字等其他非字母时不进行反转 反转后计算其中含有相对开音节结构
  • 【自然语言处理】潜在语义分析【下】概率潜在语义分析

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 由于字数限制 分成两篇博客 自然语言处理 潜在语义分析 上 潜在语义分析 自然语言处理 潜在语义分析 下 概率潜在语义分析 2 概率潜在语义分析 概率潜在语义分析 probabili
  • FreeRTOS(任务管理的创建、删除、挂起、恢复)

    目录 一 任务的基本概念 二 任务状态的概念 1 Running 运行态 2 Ready 就绪态 3 Blocked 阻塞态 4 Suspended 挂起态 三 任务状态的切换 四 系统启动 1 vTaskStartScheduler 函数
  • IOS数据管理

    在 iOS 中 没有直接与 Android 中的 SharePreference 相对应的概念 而是使用不同的机制来处理应用程序的持久化数据 在 iOS 中 你可以使用以下几种方法来保存和读取应用程序的数据 UserDefaults 用户默
  • Halcon (64位)无法卸载或者卸载不彻底,没法再次安装?

    以管理员身份 切换到cmd 1 删除安装目录 rmdir S HALCONROOT 2 查询安装的Halcon版本 reg query HKLM SOFTWARE Wow6432Node MVTec HALCON Windows x64 3
  • 面试常用算法归纳

    面试常用算法归纳 算法时间复杂度 二叉查找树的时间复杂度 递归和分治 递归思维 汉诺塔问题 排序算法 最长子串 子序列 一维dp 有断层 最长递增子序列 最大子数组和 无重复字符的最长子串 买卖股票的最佳时机 二维dp 组合 子集 和排列
  • YOLOv5改进算法之添加CA注意力机制模块

    目录 1 CA注意力机制 2 YOLOv5添加注意力机制 送书活动 1 CA注意力机制 CA Coordinate Attention 注意力机制是一种用于加强深度学习模型对输入数据的空间结构理解的注意力机制 CA 注意力机制的核心思想是引
  • Atmel Studio 7.0 快速上手指南(基于ASF)

    Atmel Studio 7 0 快速上手指南 基于ASF 程序员大本营 pianshen com
  • 【Kubernetes部署篇】K8s图形化管理工具Dasboard部署及使用

    文章目录 一 Dashboard简介 二 Dashboard部署安装 三 配置Dashboard登入用户 1 通过Token令牌登入 2 通过kubeconfig文件登入 四 Dashboard创建容器 五 扩展 一 Dashboard简介
  • switch...case...和if...else...区别

    switch 和 if 都是用来处理分支语句的 那么使用的时候 考虑到代码效率问题 就必须先来了解他们有什么区别 先来看看这两个语句的使用格式 if else if 表达式1 语句1 else if 表达式2 语句2 else if 表达式
  • Altium Designer (AD) 元器件出现绿色叉叉报错的解决办法

    出现报错的原因 元器件的安全间距小于设定的安全间距 但通常情况下 这个问题并不严重 可以理解为是一个警告 不去处理也可以 解决办法 点击菜单栏的工具 T 再点击复位错误标志 M 即可解决报错
  • 一个爬虫代码价值 7000 万

    一个爬虫代码价值 7000 亿 这样的代码你听说过吗 这是一个爬取比特币密钥的代码 比特币相信大家都有听说过 尤其最近比特币价格还突破了 5 万美元大关 现在1 枚比特币就价值 35 万人民币 难怪有句说 币圈一天 人间一年 最近朋友圈关于
  • 登录,注册HTML页面,详细过程

    1 页面说明 登录和注册切换按钮 当点击登录按钮时 显示登录表单 当点击注册按钮时 显示注册表单 每个表单都有对应的 JavaScript 校验函数 校验用户名 邮箱和密码是否为空 如果为空 会弹出警告框 2 效果图展示 3 代码部分 3