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 ...
随机推荐
- 【CF375C】Circling Round Treasures
Portal --> CF375C Solution 一个有趣的事情:题目中有很大的篇幅在介绍如何判断一个位置在不在所围的多边形中 那么..给了方法当然就是要用啊 首先是不能包含\('B'\ ...
- 【bzoj2402】陶陶的难题II
Portal -->bzoj2402 Solution 这题的话,看到答案的形式想到分数规划(Portal -->[learning]) 套路一波,记当前二分的\(mid\)为\(\lam ...
- Yii2 控制器单独向view(layout)传值
Yii2,layout中使用Controller的值,Controller向layout传值的两种方式. yii2中在通过Controller向layout中传值,layout中访问Controlle ...
- python中如何优雅使用import
http://note.youdao.com/noteshare?id=c55be6a8565f5eb586aa52244b3af010
- mysql 给用户赋值权限
解决办法 grant all privileges on *.* to joe@localhost identified by '1'; flush privileges; 拿 joe 1 登陆 附: ...
- width: calc(100% - 20px);
width: calc(100% - 20px); css3 的 calc()函数.这里的意思是设置宽度比100%的宽度少20px. calc()函数用于动态计算长度值. calc()函数支持 &qu ...
- Creating a Cron Job in K8S
Creating a Cron Job Cron jobs require a config file. This example cron job config .spec file prints ...
- DEV GridControl打印 导出
/// <summary> /// 打印 /// </summary> /// <param name="sender"></param& ...
- CF757 C hash
一种数字可以变成另一种数,要求每组中变换前后各种数字数量不变,问方案数 对现有每组中的每个数字构造出现在各个组情况的序列,如2 出现在第一组和第二组各一次那么就要加入组别的标号1,2,出现重复次仍要加 ...
- Anaconda更换版本方式
Conda的环境管理 Conda的环境管理功能允许我们同时安装若干不同版本的Python,并能自由切换.假设我们需要安装Python 3.6,此时,我们需要做的操作如下: # 创建一个名为python ...