注册协议阅读倒计时按钮可用代码

快乐打工仔 分类:实例代码

大家可能见过这样的效果,就是当注册账号的时候,需要同意指定的协议,并且为了让用户认真阅读,采用了倒计时策略,一般是倒计指定时间之后注册按钮才是可用的,下面就通过代码实例介绍一下如何实现此功能。

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style type="text/css">
#btn 
{
  width:200px;
  height:50px;
  background -color:gary;
}
</style>
<script type="text/javascript"> 
onload=function (){ 
  var btn = document.getElementById('btn'); 
  var intervalId = setInterval(function () { 
    var waitSecond = parseInt((/\d+/).exec(btn.value));
    waitSecond--;
    if (waitSecond >= 0) {
      btn.value=btn.value.replace(/\d+/, waitSecond) 
    } 
    else { 
      btn.value = '同意';
      btn.disabled = false;
      clearInterval(intervalId);
    } 
  }, 1000); 
}; 
</script>
</head>
<body>
<input type="button" value="请仔细阅读5秒后点击同意继续" id="btn" disabled="disabled"/>
</body>
</html>

以上代码实现了我们的要求,按钮在五秒之后才是可用的,下面介绍一下它的实现过程。

一.代码注释:

1.onload=function (){},当稳当内容完全加载完毕再去执行函数中的代码,这里是省略了window。

2.var btn = document.getElementById('btn'),获取按钮对象。

3.var intervalId = setInterval(function () { },1000),每隔1000毫秒也就是1秒执行一次函数。

4.var waitSecond = parseInt((/\d+/).exec(btn.value)),用正则表达式提取按钮value属性值中的数字。

5.waitSecond--,秒数减一。

6.if (waitSecond >= 0) {btn.value=btn.value.replace(/\d+/, waitSecond) } ,如果秒数大于零的话,则将按钮中的数字替换为减一后的数字,也就是继续执行递减操作。

7.else { btn.value = '同意';btn.disabled = false;clearInterval(intervalId);} ,否则将按钮value值修改为"统一",并且将按钮设置为可用,停止定时器函数的运行。

二.相关阅读:

1.setInterval()函数可以参阅setInterval()一章节。 

2.parseInt()函数可以参阅javascript parseInt()一章节。 

3.exec()函数可以参阅正则表达式exec()函数一章节。

4.replace()函数可以参阅正则表达式replace()函数一章节。  

5.disabled属性可以参阅javascript button.disabled一章节。

6.clearInterval()函数可以参阅clearInterval()一章节。

回复

我来回复
  • 暂无回复内容