使用AngularJS在HTML页面的定时器--60秒验证码
2018-03-30 11:15
330 查看
思路:
引入angularJS的js文件
页面设置模块和控制器
添加ng-click点击事件,设置ng-bind数据显示
js代码:
初始化模块
定义控制器
定义一个标识
初始化时间
初始化定时器
判断标识
false:return;
true:
显示倒计时
判断时间
time<=0
允许重发验证码
强制更新视图
$scope.$digest();
更新标识为true
初始化时间
关闭定时器
time>0
显示页面内容
强制更新视图
时间--
代码实现:<body>
<div ng-app="singupApp" ng-controller="singupCtrl">
<div class="col-sm-3 song">
<a class="btn btn-default" ng-click="getCheckCode(telephone)" ng-bind="btnMsg"></a>
</div>
</div>
</body>
<script type="text/javascript">
//初始化模块
var singupApp = angular.module("singupApp",[]);
//定义控制器
singupApp.controller("singupCtrl",function($scope,$http){
$scope.btnMsg = "获取验证码";
//定义一个标识
var active = true;
//初始化时间
var time = 60;
//初始化定时器
var secondInterval;
$scope.getCheckCode = function(telephone) {
if(active == false) {
return;
}
//发送http请求,通知服务器发送短信通知
var regex = 手机号正则;
if(regex.test(telephone)) {
//发送短信
}else{
//验证失败
alert("非法手机号,请重新输入!!!");
return;
}
//显示倒计时
secondInterva = setInterval(function(){
if(time <= 0){
//允许重新发送验证码
$scope.btnMsg = "重发验证码";
//强制更新视图
$scope.$digest();
active = true;
time = 60;
//关闭定时器
clearInterval(secondInterva);
secondInterva = undefined;
}else {
$scope.btnMsg = time + "秒可后重发";
//强制跟新视图
$scope.$digest();
time--;
}
},1000);
};
});
</script>
引入angularJS的js文件
页面设置模块和控制器
添加ng-click点击事件,设置ng-bind数据显示
js代码:
初始化模块
定义控制器
定义一个标识
初始化时间
初始化定时器
判断标识
false:return;
true:
显示倒计时
判断时间
time<=0
允许重发验证码
强制更新视图
$scope.$digest();
更新标识为true
初始化时间
关闭定时器
time>0
显示页面内容
强制更新视图
时间--
代码实现:<body>
<div ng-app="singupApp" ng-controller="singupCtrl">
<div class="col-sm-3 song">
<a class="btn btn-default" ng-click="getCheckCode(telephone)" ng-bind="btnMsg"></a>
</div>
</div>
</body>
<script type="text/javascript">
//初始化模块
var singupApp = angular.module("singupApp",[]);
//定义控制器
singupApp.controller("singupCtrl",function($scope,$http){
$scope.btnMsg = "获取验证码";
//定义一个标识
var active = true;
//初始化时间
var time = 60;
//初始化定时器
var secondInterval;
$scope.getCheckCode = function(telephone) {
if(active == false) {
return;
}
//发送http请求,通知服务器发送短信通知
var regex = 手机号正则;
if(regex.test(telephone)) {
//发送短信
}else{
//验证失败
alert("非法手机号,请重新输入!!!");
return;
}
//显示倒计时
secondInterva = setInterval(function(){
if(time <= 0){
//允许重新发送验证码
$scope.btnMsg = "重发验证码";
//强制更新视图
$scope.$digest();
active = true;
time = 60;
//关闭定时器
clearInterval(secondInterva);
secondInterva = undefined;
}else {
$scope.btnMsg = time + "秒可后重发";
//强制跟新视图
$scope.$digest();
time--;
}
},1000);
};
});
</script>
相关文章推荐
- 使用AngularJS来实现HTML页面嵌套的方法
- AngularJS监听页面关闭,定时器$interval()的使用
- 使用AngularJS来实现HTML页面嵌套的方法
- Python使用lxml模块和Requests模块抓取HTML页面的教程
- 使用XslCompiledTransform结合xslt转换xml为html静态页面
- 关于使用HTML或JS实现页面重定向的方法
- Python使用lxml模块和Requests模块抓取HTML页面的教程
- 使用AngularJS实现一个简单页面
- html中使用js进行登录md5加密提交并重定向新页面
- Android开发系列十:使用Jsoup解析HTML页面
- 使用VIM可以直接把语法加亮的Source Code转换为HTML格式的页面!
- android使用html+javascript来制作页面
- Android开发--使用JSOUP解析HTML页面
- [置顶] ajax请求得到后台数据,前台页面,使用table模板然后clone,显示表格,,不用append拼接 “字符串和HTML表格标签”
- 使用iText 将html页面转PDF文件(itext+freemarker)
- 使用QWebView与所加载的HTML页面进行通信
- (转载)HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)
- html页面中iframe的使用
- 在ASP中使用FSO组件生成HTML页面
- jsf xhtml form中 页面中使用 html标签