<!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/register.css">

<link rel="stylesheet" href="https://at.alicdn.com/t/font_2143783_iq6z4ey5vu.css">

</head>

<body>

<!-- 项部导航 -->

<div class="xtx_topnav">

<div class="wrapper">

<!-- 顶部导航 -->

<ul class="xtx_navs">

<li>

<a href=" ">请先登录</a >

</li>

<li>

<a href="./register.html">免费注册</a >

</li>

<li>

<a href="./center-order.html">我的订单</a >

</li>

<li>

<a href="./center.html">会员中心</a >

</li>

<li>

<a href="javascript:;">帮助中心</a >

</li>

<li>

<a href="javascript:;">在线客服</a >

</li>

<li>

<a href="javascript:;">

<i class="mobile sprites"></i> 手机版

</a >

</li>

</ul>

</div>

</div>

<!-- 头部 -->

<div class="xtx_header">

<div class="wrapper">

<!-- 网站Logo -->

<h1 class="xtx_logo"><a href="/">小兔鲜儿</a ></h1>

<!-- 主导航 -->

<div class="xtx_navs">

<ul class="clearfix">

<li>

<a href="./index.html">首页</a >

</li>

<li>

<a href="./category01.html">生鲜</a >

</li>

<li>

<a href="./category01.html">美食</a >

</li>

<li>

<a href="./category01.html">餐厨</a >

</li>

<li>

<a href="./category01.html">电器</a >

</li>

<li>

<a href="./category01.html">居家</a >

</li>

<li>

<a href="./category01.html">洗护</a >

</li>

<li>

<a href="./category01.html">孕婴</a >

</li>

<li>

<a href="./category01.html">服装</a >

</li>

</ul>

</div>

<!-- 站内搜索 -->

<div class="xtx_search clearfix">

<!-- 购物车 -->

<a href="./cart-none.html" class="xtx_search_cart sprites">

<i>2</i>

</a >

<!-- 搜索框 -->

<div class="xtx_search_wrapper">

<input type="text" placeholder="搜一搜" οnclick="location.href='./search.html'">

</div>

</div>

</div>

</div>

<div class="xtx-wrapper">

<div class="container">

<!-- 卡片 -->

<div class="xtx-card">

<h3>新用户注册</h3>

<form class="xtx-form">

<div data-prop="username" class="xtx-form-item">

<span class="iconfont icon-zhanghao"></span>

<input name="username" type="text" placeholder="设置用户名称">

<span class="msg"></span>

</div>

<div data-prop="phone" class="xtx-form-item">

<span class="iconfont icon-shouji"></span>

<input name="phone" type="text" placeholder="输入手机号码 ">

<span class="msg"></span>

</div>

<div data-prop="code" class="xtx-form-item">

<span class="iconfont icon-zhibiaozhushibiaozhu"></span>

<input name="code" type="text" placeholder="短信验证码">

<span class="msg"></span>

<a class="code" href="javascript:;">发送验证码</a >

</div>

<div data-prop="password" class="xtx-form-item">

<span class="iconfont icon-suo"></span>

<input name="password" type="password" placeholder="设置6至20位字母、数字和符号组合">

<span class="msg"></span>

</div>

<div data-prop="confirm" class="xtx-form-item">

<span class="iconfont icon-suo"></span>

<input name="confirm" type="password" placeholder="请再次输入上面密码">

<span class="msg"></span>

</div>

<div class="xtx-form-item pl50">

<i class="iconfont icon-queren"></i> 已阅读并同意

<i>《用户服务协议》</i>

</div>

<div class="xtx-form-item">

<button class="submit">下一步</button>

<!-- <a class="submit" href="javascript:;">下一步</a > -->

</div>

</form>

</div>

</div>

</div>

<!-- 公共底部 -->

<div class="xtx_footer clearfix">

<div class="wrapper">

<!-- 联系我们 -->

<div class="contact clearfix">

<dl>

<dt>客户服务</dt>

<dd class="chat">在线客服</dd>

<dd class="feedback">问题反馈</dd>

</dl>

<dl>

<dt>关注我们</dt>

<dd class="weixin">公众号</dd>

<dd class="weibo">微博</dd>

</dl>

<dl>

<dt>下载APP</dt>

<dd class="qrcode">

< img src="./课堂-综合案例/uploads/qrcode.jpg">

</dd>

<dd class="download">

<span>扫描二维码</span>

<span>立马下载APP</span>

<a href="javascript:;">下载页面</a >

</dd>

</dl>

<dl>

<dt>服务热线</dt>

<dd class="hotline">

400-0000-000

<small>周一至周日 8:00-18:00</small>

</dd>

</dl>

</div>

</div>

<!-- 其它 -->

<div class="extra">

<div class="wrapper">

<!-- 口号 -->

<div class="slogan">

<a href="javascript:;" class="price">价格亲民</a >

<a href="javascript:;" class="express">物流快捷</a >

<a href="javascript:;" class="quality">品质新鲜</a >

</div>

<!-- 版权信息 -->

<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>

</div>

</div>

<script>

// 需求①: 发送验证码

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

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

let code = document.querySelector('.code')

code.addEventListener('click', function () {

this.innerHTML = `05秒后重新获取`

let mark = 5

let time = setInterval(function () {

mark--

code.innerHTML = `0${mark}秒后重新获取`

if (mark === 0) {

clearInterval(time)

code.innerHTML = `重新获取`

}

}, 1000)

})

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

// 正则 /^ [a - zA - Z0 - 9 - _]{ 6, 10 } $ /

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

// 否则 则返回return true

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

let username = document.querySelector('[name=username]') //css属性选择器:通过属性进行选择标签 【属性=值】值不需要引号 等号两边不要加空格

username.addEventListener('change', verifyUsername)

// 封装函数verifyUsername 验证用户名是否满足正则表达式

function verifyUsername() {

let span = username.nextElementSibling

let reg = /^[a-zA-Z0-9-_]{6,10}$/

if (!reg.test(username.value)) {

//如果不符合

//给出提示信息

span.innerHTML = '请输入6-10个字符'

//return 退出函数

return false

}

//如果符合 不给出提示

span.innerHTML = ''

return true //这里返回的布尔值是用于提交按钮进行验证的 只要return的返回值有false 就无法提交

}

// 需求③: 手机号验证

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

// 其余同上

let phone = document.querySelector('[name = phone]')

phone.addEventListener('change', verifyPhone)

//封装手机验证函数

function verifyPhone() {

let span = phone.nextElementSibling

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

if (!reg.test(phone.value)) {

//如果手机号不合法 给出提示信息

span.innerHTML = '请输入合法手机号'

return false

}

//手机号合法

span.innerHTML = ''

return true

}

// 需求④: 验证码验证

// 正则 /^\d{6}$/

// 其余同上

let inputCode = document.querySelector('input[name=code]')

inputCode.addEventListener('change', verifyInputCode)

function verifyInputCode() {

let span = inputCode.nextElementSibling

let reg = /^\d{6}$/

if (!reg.test(inputCode.value)) {

//验证码不符合 给出提示信息

span.innerHTML = '请输入6位数字验证码'

return false

}

//验证码合法

span.innerHTML = ' '

return true

}

// 需求⑤: 密码验证

// 正则 /^[a-zA-Z0-9-_]{6,20}$/

// 其余同上

let password = document.querySelector('[name = password]')//

password.addEventListener('change', verifypassword)

//封装手机验证函数

function verifypassword() {

let span = password.nextElementSibling

let reg = /^[a-zA-Z0-9-_]{6,20}$/

if (!reg.test(password.value)) {

//如果手机号不合法 给出提示信息

span.innerHTML = '请输入合法密码'

return false

}

//密码合法

span.innerHTML = ''

return true

}

// 需求⑥: 再次密码验证

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

// 其余同上

let confirm = document.querySelector('[name=confirm]')

confirm.addEventListener('change', verifyConfirm)

function verifyConfirm() {

let span = confirm.nextElementSibling

if (password.value !== confirm.value) {

span.innerHTML = '两次密码不一致'

return false

}

span.innerHTML = ''

return true

}

// 需求七:我同意模块

// 切换类 .icon-queren2 则是默认选中样式

let icon=document.querySelector('.icon-queren')

icon.addEventListener('click',function(){

//classList.toggle()切换

this.classList.toggle('icon-queren2')

})

// 需求八:提交按钮模块

// 使用 submit 提交事件

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

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

// 在提交之前先验证

let form=document.querySelector('form')

form.addEventListener('submit',function(e){

if(!verifyUsername()){

//返回值是false,需要阻止提交

//事假对象的阻止默认行为:e.preventDefault()

e.preventDefault()

}

if(!verifyConfirm()){

//同上

e.preventDefault()

}

if(!verifyInputCode()){

e.preventDefault()

}

if(!verifyPhone()){

e.preventDefault()

}

if(!verifypassword()){

e.preventDefault()

}

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

//classList.contains 是否包含,如果有则返回true,没有则返回false

if(!icon.classList.contains('icon-queren2')){

alert('请勾选同意框')

e.preventDefault()

}

})

</script>

</body>

</html>

综合案例:实现注册、登录和跳转到主页面的功能。相关推荐

  1. 实现综合案例的注册、登录和跳转到主页面的功能

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  2. JavaWeb25.3【综合案例:注册功能(含邮箱激活账号)】

    register.html 1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta char ...

  3. Winform中实现简单的登录成功后跳转到主页面的逻辑

    场景 Winform中实现运行项目后首先启动登录窗体,验证成功之后,跳转到主页面. 注: 博客: BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客-C#,SpringBoot, ...

  4. JavaWeb_10_mvc案例_注册登录

    UserDao位于dao包 package cn.itcast.dao; import cn.itcast.domain.User; public interface UserDao {//操作1,添 ...

  5. php用户登录后跳转到主页,phpmyadmin登录后跳到首页的问题

    我的做法是配置好 PHP 之后,直接到 DOCUMENT_ROOT 下建立一个到 PMA 的软链接. [16:56] caiknife@caiknife-ThinkPad-T400:/usr/shar ...

  6. 《Spark SQL大数据实例开发》9.2 综合案例实战——电商网站搜索排名统计

    <Spark SQL大数据实例开发>9.2 综合案例实战--电商网站搜索排名统计 9.2.1 案例概述     本节演示一个网站搜索综合案例:以京东为例,用户登录京东网站,在搜索栏中输入搜 ...

  7. Java实现注册登录系统——基于Java Swing实现

    技术简介:Java Swing 介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. ...

  8. java swing登录系统_Java实现注册登录系统——基于Java Swing实现

    技术简介:Java Swing 介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. ...

  9. 知云文献翻译登录时不显示二维码,显示二维码后扫描登录不跳转解决方案

    1.登录时不显示二维码--解决方案 打开 Internet Explorer 点击"设置"中的"Internet 选项" 切换到"连接"选项 ...

最新文章

  1. hive2.3.2安装使用
  2. IBM首家发布了公有云中的裸机Kubernetes
  3. Linux 下UVCamp;V4L2技术简单介绍(二)
  4. javascript 给关键字加链接
  5. Linux服务器集群系统(一)—— LVS(Linux Virtual Server)简介
  6. Oracle定时调用存储过程
  7. java递归删除文件夹_如何使用递归删除Java中的目录/文件夹
  8. [C++] - 面向对象-院校管理系统
  9. SAX方式解析XML文档
  10. Oracle自定义函数示例
  11. 【3D动态脑图制作软件】万彩脑图大师教程 | 将思维导图输出到云服务
  12. 计算机一级考试图片水印怎么加,图片水印怎么添加?一起来看看这几个方法
  13. 停课集训 11.27
  14. Serialization assertion safeVersionRead == safeSerializationVersion failed.
  15. 2021 | VMware ESX虚拟机
  16. Windows 10无法显示无线网络连接
  17. Python 把两张图片拼起来
  18. IM开发宝典:史上最全,微信各种功能参数和逻辑规则资料汇总
  19. 64B/66B编码技术
  20. 2014年PMP学习及考试总结

热门文章

  1. 网页调用迅雷的JS(支持客户端版和网页版)
  2. 宾果消消消鸿蒙版,宾果消消消最新版
  3. 新人学c,求助%5.2f含义
  4. Youtube 评论数
  5. c++ 输入一个日期,计算出该日期是这一年中的第几天(switch语句)
  6. java将十进制数字转换成二进制
  7. 2021年保育员(中级)考试及保育员(中级)考试资料
  8. android 传感器小游戏,重力感应球游戏
  9. ArtWork+并查集二维
  10. /,./和../的区别