angular.js 验证码注册登录
css部分
header{
height: 50px;
line-height: 50px;
display: flex;
}
.callback{
text-align: left;
display: block;
margin-left: 10px;
}
header span:nth-child(2){
flex: 1
}
.content{
background: black;
height: 100%;
overflow: hidden;
padding: 0 20px;
}
.logo{
margin: 33px 46px;
}
.logo img{
width: 100%;
height: 100%;
}
.content p{
color: white;
text-align: left;
font-size: 13px;
}
.enjoy{
color: #FF9900
}
.phoneNumber{
display: flex;
border-bottom: 1px solid white;
padding: 5px 0px;
}
.phoneNumber input{
border: none;
background: black;
color: white;
font-size: 15px;
width: 100%;
outline:none;
padding: 0;
margin: 0
}
.phoneNumber button{
background: black;
width: 117px;
height: 36px;
border: 1px solid white;
color: white;
font-size: 13px;
border-radius: 5px;
outline:none;
}
.register{
margin-top: 27px;
}
.Submission{
height: 45px;
width: 100%;
margin-top: 40px;
background-color: #EABC2E;
border: none;
outline:none;
border-radius: 5px;
}
.introduce{
margin: 54px 0;
height: 154px;
border: 1px solid #EABC2E;
border-radius: 5px;
padding-left: 11px;
}
.introduce ul li{
text-align: left;
color: white;
line-height: 25px;
font-size: 13px;
}
.introduce p{
line-height: 40px;
}
.Copyright{
height: 50px;
background-color: black;
color: white;
margin: 0;
font-size: 12px;
text-align: center;
}
.errorFalse{
position: fixed;
background: rgba(0, 0, 0, 0.7);
z-index: 999;
width: 100%;
height: 100%;
top: 0;
bottom: 0;
display: none;
}
.errorFalse .link{
position: absolute;
top: 42%;
width: 79%;
left: 0;
right: 0;
height: 100px;
margin: 0 auto;
border-radius: 5px;
border: 1px solid #EABC2E;
}
.errorFalse .link p{
color: white;
line-height: 0px;
padding-top: 36px;
}
页面部分
<section>
<div class="content">
<div class="logo">
<img src="images/logo.png" alt="" srcset="">
</div>
<p>{{Inviter_name}}邀请你注册X的现身</p>
<p>注册成功后,你在「X的现身」APP中将
<span class="enjoy">永久享受充值优惠权限!</span>
</p>
<form name="myForm" novalidate>
<!-- 手机验证 -->
<div class="register">
<div class="phoneNumber">
<input type="number" placeholder="请输入您的手机号" ng-model="user.phone" name="phone" maxlength="11" required/>
<button ng-click="getCode()" ng-bind="description" ng-disabled="canClick">获取验证码</button>
</div>
<div class="phoneNumber">
<input type="text" value="" placeholder="请输入短信中的验证码" ng-model="user.code" required/>
</div>
<button class="Submission" ng-click="register()">下一步</button>
</div>
</form>
<!-- 介绍 -->
<div class="introduce">
<p>「X的现身」APP 介绍:</p>
<ul>
<li>· 一款可以玩的狼人杀主题社交APP</li>
<li>· 全新的狼人杀游戏体验,回归经典的面杀形式</li>
<li>· 在这里可以发现更多有趣的人和事</li>
<li>· 新一代陌生人之间的破冰神器</li>
</ul>
</div>
<div class="Copyright">
<p>Copyright © 2017-2018 北京咱们一起文化发展有限公司</p>
</div>
</div>
<div class="errorFalse ">
<div class="link">
<p>该手机号已注册「X的现身」</p>
<p>系统将自动为您跳转到下载页面</p>
</div>
</div>
</section>
js 部分
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope, $http, $interval, $location) {
//初始化
$scope.canClick = false;
$scope.description = '获取验证码';
$scope.second = 60;
$scope.Inviter_name = $location.search().Inviter_name;
$scope.user = {
"phone": "",
"code": ""
}
//验证手机号
$scope.checkphone = function () {
phone = $scope.user.phone;
if (phone == '') {
mui.toast('手机号码不能为空');
return false;
} else if (!(/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(phone))) {
mui.toast('请填写正确的手机号');
return false;
}
return true;
}
//验证验证码
$scope.checkcode = function () {
code = $scope.user.code;
if (code == '') {
mui.toast('验证码错误');
return false;
}
return true;
}
//获取验证码
$scope.getCode = function () {
//验证手机号
if (!$scope.checkphone()) {
return false;
}
// 判断是canClick == true的时候说明获取验证码是点击后
if ($scope.canClick == false) {
$scope.url =
phone = $scope.user.phone;
$http({
method: "GET",
url: $scope.url,
dataType: 'jsonp',
params: {
}
}).success(function (data) {
console.log(data)
if (data.status = 22000) {
var timePromise = $interval(function () {
if ($scope.second <= 0) {
$interval.cancel(timePromise);
$scope.second = 60;
$scope.description = "重发验证码";
$scope.canClick = false;
} else {
$scope.second--;
$scope.description = $scope.second + "秒后重发";
$scope.canClick = true;
}
}, 1000);
}
})
}
}
//提交信息
$scope.register = function () {
$scope.invite_code = $location.search().invite_code;
if (!$scope.checkphone()) {
return false;
}
if (!$scope.checkcode()) {
return false;
}
$scope.url =
$http({
method: "GET",
url: $scope.url,
params: {
}
}).success(function (result) {
});
}
})
话不多说,直借粘贴代码用吧。 https://www.xappearance.com/m/ 这个我们的官网可以下载狼人杀的游戏。 代码不完美,请赐教。。
angular.js 验证码注册登录的更多相关文章
- Angular之简单的登录注册
使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- 原生js验证简洁美观注册登录页面
序 一个以js验证表单的简洁的注册登录页面,不多说直接上图 效果 主要文件 完整代码 sign_up.html 注册表单 <!DOCTYPE html> <html lang=&qu ...
- Node.js原生及Express方法实现注册登录原理
由于本文只是实现其原理,所以没有使用数据库,只是在js里面模拟数据库,当然是种中还是需要用数据库的. 1.node.js原生方法 ①html页面,非常简单,没有一丝美化~我们叫它user.html & ...
- node.js 初学(二)—— 搭建注册/登录服务器
node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...
- Angular JS 中的服务注册方法
在Angular JS中创建服务的几种方法 factory() service() constant() value() provider() factory(name,fn(){}) 该服务为单例的 ...
- 一步步开发自己的博客 .NET版(3、注册登录功能)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...
- 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能
现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...
随机推荐
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- python创建多维列表
By francis_hao Mar 24,2018 "*"操作符可以用于列表,表示将列表内容重复n次.如下, 但是当列表内容是列表的时候就出问题了,如果我只是修改多 ...
- 【题解】Points, Lines and Ready-made Titles Codeforces 871C 图论
Prelude 真是一道好题,然而比赛的时候花了太多时间在B题上,没时间想这个了QAQ. 题目链接:萌萌哒传送门(.^▽^) Solution 观察样例和样例解释,我们发现,假如有四个点,恰好占据在某 ...
- (转)javap 指令集
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型 ...
- OpenCV---图像加载与保存
一:获取图像的信息 什么是图像: 结构化存储的数据信息 图像属性: -通道数目 -高与宽 -像素数据 -位图深度 import cv2 as cv def get_image_info(image): ...
- Error : getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
环境 阿里云 centos7 node v8.11.3 npm 5.6.0 错误 npm update 解决 ping registry.npmjs.org 发现https://registry.np ...
- CF832 D LCA倍增 裸
有询问$a,b,c$,求a到c路径上,同时是a到b路径的点的个数.其中询问中的a,b,c可任意选择作为起点或终点,求一组询问中最大值. LCA用于计算树上点对间距离,对于一组询问求深度最大的点作为起点 ...
- jQuery中一些不常用的方法属性【转载】
index(subject) 搜索与参数表示的对象匹配的元素,并返回相应元素的索引值.如果找到了匹配的元素,从0开始返回:如果没有找到匹配的元素,返回-1. data() data(elem):为页面 ...
- Findbugs插件安装与使用
FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具.FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析.FindBug ...
- 【leetcode 简单】第四十一题 Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...