可以使用 pointer-events 来阻止元素成为鼠标事件的 target。html5 新增操作元素 class 类名的方式 classList。

classList 方法

  • add(value):在元素中添加一个或多个类名。如果值已经存在,就不添加了。
  • contains(value): 返回布尔值,判断指定的类名是否存在。
  • remove(value):移除元素属性列表中一个或多个类名。注意: 移除不存在的类名,不会报错。
  • toggle(value):在元素中切换类名。如果列表中已经存在给定的值,删除它;如果列表中没有给定的值,添加它

原生 JS 实现手机验证码倒计时

单击“发送验证码”后,需等待 10 秒才能再次单击“重发获取”,在此期间,可以使用 pointer-events 来阻止元素成为鼠标事件的目标。源码参考如下。

<!DOCTYPE html>
<html> <head>
<title> 手机验证码 </title>
<meta charset="utf-8" />
</head> <style>
a{
color:red;
}
.disable{
pointer-events:none;
color:#666;
}
</style> <body>
<p>
<input type="text" placeholder="请输入手机号">
</p>
<p>
<input type="text" placeholder="验证码">
<a href="javascript:;" id="btn">发送验证码</a>
</p> <script type="text/javascript">
var oBtn = document.getElementById('btn');
var flag = true; oBtn.addEventListener("click", function () {
var time = 10;
oBtn.classList.add('disable');
oBtn.innerText = '已发送'; if (flag) {
flag = false;
var timer = setInterval(() => {
time--;
oBtn.innerText = time + ' 秒';
if (time === 0) {
clearInterval(timer);
oBtn.innerText = '重新获取';
oBtn.classList.remove('disable');
flag = true;
}
}, 1000)
}
}); </script>
</body> </html>

原生 JS 实现手机验证码倒计时的更多相关文章

  1. js获取手机验证码倒计时的实现

    方案一 <div class="div user-input"> <input type="number" class="code& ...

  2. js&jq 发送验证码倒计时

    <input  type="text"   name=''  id="btn"> //发送验证码倒计时var wait=30; function t ...

  3. AngularJS $timeout和 $interval ,定时器手机验证码倒计时

    $interval是 window.setInterval的Angular包装形式.$interval指每次延迟时间后执行响应的函数(也可以说:每次执行函数的间隔时间).$interval多数用于计时 ...

  4. jquery实现获取手机验证码倒计时效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 【jQuery】手机验证码倒计时效果

    <ul class="ulist"> <li class="group"> <label class="label&qu ...

  6. js实现发送验证码倒计时效果

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. js实现发送验证码倒计时按钮

    在写注册页面时,有时候需要发送注册邮件来获取验证码,但是为了防止多次重复发送邮件, 必须让按钮隔一段时间后才能再次使用. 代码如下: <html> <head> <met ...

  8. 原生js实现发送验证码

    var form = { myfun:function(){ var el = form.config().el; var button = form.config().button; var tim ...

  9. 微信小程序发送手机验证码---倒计时

    var currentTime = 59 //倒计时的事件(单位:s)var interval = null //倒计时函数 Page({ data: { time:59 //倒计时 }, onLoa ...

随机推荐

  1. JAVAEE——SSH项目实战01:SVN介绍、eclipse插件安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  2. 学习笔记:ALTERing a Huge MySQL Table - 对一个超大表做alter调整

    Table of Contents The ProblemFuture SolutionsOverview of SolutionShortcutAssumptions/Restrictions/Co ...

  3. 动态修改css文件中,具体的class中的个别属性值。

    function setStyleSheetObjCssClassProperty(pStyleSheetObj, pSelectorText, pProperty, pValue) { var pS ...

  4. [Spark SQL_3] Spark SQL 高级操作

    0. 说明 DataSet 介绍 && Spark SQL 访问 JSON 文件 && Spark SQL 访问 Parquet 文件 && Spark ...

  5. 进程控制编程——Linux编程

    1.进程的创建 编写一段程序,使用系统调用fork( )创建两个子进程,在系统中有一个父进程和两个子进程活动.让每个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b” 和“c”. ...

  6. 实现一个协程版mysql连接池

    实现一个协程版的mysql连接池,该连接池支持自动创建最小连接数,自动检测mysql健康:基于swoole的chanel. 最近事情忙,心态也有点不积极.技术倒是没有落下,只是越来越不想写博客了.想到 ...

  7. tplink-ssh登录

    同步发表:https://www.eatm.app/archives/395.html 备份配置信息 开启SSH #修改文件userconfig/etc/config/dropbear, #查看opt ...

  8. JDK 环境变量 Windows配置

    安装完成JDK后需要配置环境变量,下面是环境变量的配置方法 1.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C:\Java\jdk ...

  9. 解决Windows Server2008 R2中IE开网页时弹出阻止框

    使用Windows Server2008,用IE打开网站时会弹出“Internet Explorer增强安全配置正在阻止来自下列网站的此应用程序中的内容”的对话框.如下图所示: 2011-10-14_ ...

  10. angularjs ngRoute和ui.router对比

    ngRoute模块是angularjs自带的路由模块,ui.router是一个第三方路由模块,接下来将对两者进行一个对比: ng-router(angular-router.js) ng-view n ...