apis-day7综合案例

news2024/11/18 17:35:23

apis-day7综合案例-小兔鲜案例注册

需求①: 发送验证码

用户点击之后,显示 05秒后重新获取

时间到了,自动改为 重新获取

需求②: 用户名验证(注意封装函数 verifyxxx)

正则 /1{6,10}$/

如果不符合要求,则出现提示信息 并 return false

否则 则返回return true

之所以返回 布尔值,是为了 最后的提交按钮做准备

需求③: 手机号验证

正则: /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/

其余同上

需求④: 验证码验证

正则 /^\d{6}$/

其余同上

需求⑤: 密码验证

正则 /2{6,20}$/

其余同上

需求⑥: 再次密码验证

如果本次密码不等于上面输入的密码则返回错误信息

其余同上

需求⑦: 我同意模块

添加类 .icon-queren2 则是默认选中样式

需求⑧: 提交按钮模块

使用 submit 提交事件

如果上面的每个模块,返回的是 false 则 阻止提交

如果没有勾选同意协议,则提示 需要勾选

跳转后页面需求:

如果是移动端打开,则跳转到移动端页面

如果本地存储有数据,则 显示 你好 xxxx

否则 显示 请跳转到注册页面

代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>小兔鲜儿 - 新鲜 惠民 快捷!</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit">
  <!-- <link rel="shortcut icon" href="../favicon.ico"> -->
  <link rel="stylesheet" href="./css/common.css">
  <link rel="stylesheet" href="./css/login.css">
  <!-- <link rel="stylesheet" href="https://at.alicdn.com/t/font_2143783_iq6z4ey5vu.css"> -->
</head>

<body>
  <!-- 登录头部 -->
  <div class="xtx-login-header">
    <h1 class="logo"></h1>
    <a class="home" href="./index.html">进入网站首页</a>
  </div>
  <!-- 登录内容 -->
  <div class="xtx-login-main">
    <div class="wrapper">
      <form action="">
        <div class="box">
          <div class="tab-nav">
            <a href="javascript:;" class="active">账户登录</a>
            <a href="javascript:;">二维码登录</a>
          </div>
          <div class="tab-pane">
            <div class="link">
              <a href="javascript:;">手机验证码登录</a>
            </div>
            <div class="input">
              <span class="iconfont icon-zhanghao"></span>
              <input required type="text" placeholder="请输入用户名称/手机号码" name="username">
            </div>
            <div class="input">
              <span class="iconfont icon-suo"></span>
              <input required type="password" placeholder="请输入密码" name="password">
            </div>
            <div class="agree">
              <label for="my-checkbox">
                <input type="checkbox" value="1" id="my-checkbox" class="remember" name="agree">
                <span class="iconfont icon-xuanze"></span>
              </label>
              我已同意 <a href="javascript:;">《服务条款》</a href="javascript:;"><a>《服务条款》</a>
            </div>
            <div class="button clearfix">
              <button type="submit" class="dl">登 录</button>
              <!-- <a class="dl" href="./center.html">登 录</a> -->
              <a class="fl" href="./forget.html">忘记密码?</a>
              <a class="fr" href="./register.html">免费注册</a>
            </div>
          </div>
          <div class="tab-pane" style="display: none;">
            <!-- <img class="code" src="../images/code.png" alt=""> -->
          </div>
        </div>
      </form>
    </div>
  </div>
  <!-- 登录底部 -->
  <div class="xtx-login-footer">
    <!-- 版权信息 -->
    <div class="copyright">
      <p>
        <a href="javascript:;">关于我们</a>
        <a href="javascript:;">帮助中心</a>
        <a href="javascript:;">售后服务</a>
        <a href="javascript:;">配送与验收</a>
        <a href="javascript:;">商务合作</a>
        <a href="javascript:;">搜索推荐</a>
        <a href="javascript:;">友情链接</a>
      </p>
      <p>CopyRight &copy; 小兔鲜儿</p>
    </div>
  </div>
  <script>
    // 1.获取元素
    let username = document.querySelector('[name=username]')
    let password = document.querySelector('[name=username]')
    let remember = document.querySelector('.remember')
    let dl = document.querySelector('.dl')
    dl.addEventListener('click', function (e) {
      e.preventDefault()
      // 如果没有勾选
      if (!remember.checked) {
        alert('请勾选复选框')
        return
      }
      let obj = {
        username: username.value,
        password: password.value,
      }
      localStorage.setItem('pink', JSON.stringify(obj))
      // 跳转到新的页面
      location.href = './index.html'

    })
    // 2.保存密码,下次在登录时自动记住密码,并勾选复选框
    let obj = JSON.parse(localStorage.getItem('pink'))
    if (obj) {
      // 把本地存储数据复制到文本框
      username.value = obj.username
      // 为啥记住了用户名、密码,重新打开页面,只记住了用户名?本地存储用户名与密码也同时存了呀,好奇怪
      password.value = obj.password
      // 有数据自动勾选复选框
      remember.checked = true
    }

  </script>
</body>

</html>

展示界面如下:

在这里插入图片描述

小兔鲜代码如下:

  <script>
    // 如果本地存储有数据,则显示你好×××
    // 否则请跳转到注册页面
    let li = document.querySelector('.xtx_navs li:first-child')
    //obj是一个对象 (里面是数组元素)
    let obj = JSON.parse(localStorage.getItem('pink'))
    if (obj) {
      li.innerHTML = ` <a href="javascript:;">你好,${obj.username}欢迎来到我的世界! </a>`
    }

  </script>

展示界面如下:

在这里插入图片描述


  1. a-zA-Z0-9-_ ↩︎

  2. a-zA-Z0-9-_ ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非零基础自学Golang 第1章 走进Go 1.1 Go编程语言概述 1.1.3 使用Go 语言的项目

非零基础自学Golang 文章目录非零基础自学Golang第1章 走进Go1.1 Go编程语言概述1.1.3 使用Go 语言的项目第1章 走进Go 1.1 Go编程语言概述 1.1.3 使用Go 语言的项目 Go语言在2009年首次公开发布后受到越来越多的开发者的关注&#xff0c;Go语言社区不断壮大&#xff0c;开源…

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Deep Learning Task Tips

文章目录一、深度学习步骤回顾二、常规指导三、训练过程中Loss很大3.1 原因1&#xff1a;模型过于简单3.2 原因2&#xff1a;优化得不好3.3 原因1 or 原因2 &#xff1f;四、训练过程Loss小。测试过程Loss大4.1 原因1&#xff1a;过拟合 Overfitting4.2 原因2&#xff1a;Misma…

windows 10 HBase保姆级安装教程

安装HDFS 将下载好的hadoop-2.6.5.zip解压到自己的磁盘文件&#xff0c;将解压后的文件夹hadoop-2.6.5重命名为hadoop&#xff1b; 解压hadoopbin.zip&#xff0c;将解压后的文件夹打开&#xff0c;里面的文件复制到上一步的hadoop文件夹下的bin文件&#xff0c;直接覆盖同名文…

蓝牙模块HC-05使用指南

概述 HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC&#xff0c;符合蓝牙v2.0标准&#xff0c;支持UART和USB接口。 具有两种工作模式&#xff1a;命令响应工作模式和自动连接工作模式。 当模块处于命令响应工作模式&#xff08;或者AT模…

文件传输利器Croc

概述 一般而言&#xff0c;Linux系统是没有用户界面的&#xff0c;所有操作都是在命令行里。 然后在安装搭建集群&#xff0c;如分布式的Hadoop集群时&#xff0c;经常需要在多个Server之间传输文件。两个server之间的文件传输&#xff0c;一般会想到FTP或SSH两种方式。使用F…

监控系列(二)Dem对接Prometheus+grafana显示

一、概括 本篇不涉及达梦数据库搭建以及Dem的搭建&#xff0c;操作环境需提前准备prometheus以及grafana的搭建&#xff0c;请跳转到前文查看整体的对接流程如图所示 二、Dem对接prometheus 前提 需确保当前Dem&#xff0c;已有集群纳入监管 配置Dem的监控机器数据指标 prome…

第十九章 Bellman-Ford算法(由SPFA算法逆推BF,独特解读,超级详细)

第十九章 Bellman-Ford算法一、SPFA算法回顾&#xff1a;二、Bellman-Ford算法1、算法推导&#xff1a;1、算法模板&#xff1a;三、例题&#xff1a;1、问题&#xff1a;2、模板&#xff1a;3、分析&#xff1a;一、SPFA算法回顾&#xff1a; 我们在第18章中利用dijkstra算法…

【多数据源动态切换】Spring Boot中实现多数据源动态切换效果(1):通过继承AbstractRoutingDataSource类实现

在Spring Boot中&#xff0c;可以通过多种方式实现多数据源的动态切换效果&#xff0c;本篇介绍第一种实现方案。 一 AbstractRoutingDataSource Spring Boot提供了org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource 这个类&#xff0c;其中#determineC…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园花卉销售系统ef5ox(1)

做毕业设计一定要选好题目。毕设想简单&#xff0c;其实很简单。这里给几点建议&#xff1a; 1&#xff1a;首先&#xff0c;学会收集整理&#xff0c;年年专业都一样&#xff0c;岁岁毕业人不同。很多人在做毕业设计的时候&#xff0c;都犯了一个错误&#xff0c;那就是不借鉴…

redis之作为分布式锁使用

写在前面 本文一起看下redis作为分布式锁使用的相关内容。 1&#xff1a;怎么算是锁或没锁 锁和没锁本身其实就是用一个变量的值来表示&#xff0c;比如变量lock&#xff0c;当值为1时代表处于上锁状态&#xff0c;当值为0时表示没有锁&#xff0c;那么多线程想要获取锁的话…

【网络工程】8、实操-万达酒店综合项目(二)

接上篇《7、实操-万达酒店综合项目&#xff08;一&#xff09;》 之前我们讲解了酒店网络项目的整体需求文档&#xff0c;包括项目背景、总体架构设计以及网络功能域划分、配置标准、路由规划等。本篇我们就来按照项目要求进行模拟拓扑的构建实操。 一、总体架构效果 按照之前…

力扣 1827. 最少操作使数组递增

题目 给你一个整数数组 nums &#xff08;下标从 0 开始&#xff09;。每一次操作中&#xff0c;你可以选择数组中一个元素&#xff0c;并将它增加 1 。 比方说&#xff0c;如果 nums [1,2,3] &#xff0c;你可以选择增加 nums[1] 得到 nums [1,3,3] 。 请你返回使 nums 严…

2.10.0 以太网 传统STP生成树简介、STP工作方式简单介绍

2.10.0 以太网 传统STP生成树&#xff08;简介、工作方式&#xff09; 作用&#xff1a; STP&#xff08;Spanning Tree Prortoco&#xff09;生成树协议&#xff0c;它的出现解决了交换机网络环路的问题。 交换机网络中收到BUM帧的时候&#xff0c;将会进行泛洪的操作&…

HCIA 以太网的帧

一、前言 网络经常会遇到一些词汇&#xff0c;比如包、报文、帧&#xff0c;其概念如下&#xff1a; 1&#xff09;帧&#xff08;frame&#xff09;&#xff1a;数据链路层的协议数据单元&#xff0c;它包括三部分&#xff1a;帧头、数据部分、帧尾。其中&#xff0c;帧头和…

vector容器模拟实现(上)

1.1:模板设置 因为不能与库已经有的vector冲突&#xff0c;首先定义命名空间namespace my 使用类模板。 1.2:成员变量 vector有size&#xff0c;capacity&#xff0c;同时也要进行扩容操作和缩容&#xff08;shrink to fit&#xff09;操作&#xff0c;所以需要3个迭代器。 p…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java杨柳农贸市场摊位管理系统qr3ri

大四计算机专业的同学们即将面临大学4年的最后一次考验--毕业设计。通过完成毕业设计来对过去4年的大学学习生活做一个总结&#xff0c;也是检验我们学习成果的一种方式&#xff0c;毕业设计作品也是我们将来面试找工作的一个敲门砖。 选题前先看看自己掌握哪些技术点、擅长哪…

mysql首次安装error 1045 28000解决

mysql首次安装error 1045 28000解决 首先找到了这个教程&#xff0c;按其操作一步一步来&#xff0c;发现到登录输入密码这一步&#xff0c;怎么样都报错 2021MySql-8.0.26安装详细教程&#xff08;保姆级&#xff09; 然后按照这篇操作&#xff0c;但还是不行 MySQL安装1045错…

[附源码]Python计算机毕业设计Djangoospringboot作业管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

通过窗口看世界之 界面制作如此简单-带你制作旅游观光系统界面-----效果图展示

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 玩归玩闹归闹&#xff0c;别拿java开玩笑 ⭐旅游管理系统部分效果图展示⭐ 文章目录⭐旅游管理系统部分效果图…

持久化的配置都不知道,也敢说精通Redis?

前言 所谓持久化可以简单理解为将内存中的数据保存到硬盘上存储的过程。持久化之后的数据在系统重启或者宕机之后依然可以进行访问&#xff0c;保证了数据的安全性。一键获取最先java文档。 Redis有两种持久化方案&#xff0c;一种是快照方式&#xff08;SNAPSHOTTING&#xff…