vue 验证码界面实现点击后标灰并设置div按钮不可点击状态


Posted in Javascript onOctober 28, 2019

1、先看看效果图

未点击获取验证码的按钮状态

vue 验证码界面实现点击后标灰并设置div按钮不可点击状态

点击后的不可点击状态

vue 验证码界面实现点击后标灰并设置div按钮不可点击状态

2、代码实现

<template>
 <div class="my-code">
   <input class="my-code-input" type="text" v-model="login_form.captcha" placeholder="Your Captcha">
   <div class="my-code-get" @click="get_captcha" id="new_yan">
     <span v-show="show">Get Captcha</span>
     <span v-show="!show">{{ count }} s</span>
   </div>
 </div>
</template>

<script>
  import store from '@/store'
  import Vue from 'vue'
  import $ from 'jquery'

  export default {
    name: "register",
    data () {
      return {
        show: true,
        count: 60,
        timer: null,
      }
    },
    methods: {
      get_captcha() {
         if (this.login_form.username === '' ) {
          alert('Phone number or mailbox cannot be empty')
        } else {
          if(this.timer == null){
            getValidate(this.login_form.username).then(response => {
              const data = response.data
              console.log(data)
              console.log('成功')
            }).catch(error => {
              console.log(error)
              alert(error)
            })
          } 
          if (!this.timer) {
            this.count = 60;
            this.show = false;
            $(".my-code-get").addClass("huise")
            // 将鼠标设置为不可点击状态
            document.getElementById('new_yan').style.cursor = 'not-allowed'
            this.timer = setInterval(() => {
              if (this.count > 0 && this.count <= 60) {
                this.count--
              } else {
                this.show = true
                clearInterval(this.timer)
                this.timer = null
              }
            }, 1000)
          }
        }
      }
    },
    created: function() {
    },
    watch:{
      timer: function(val){
        console.log(val)
        if(val == null){
           // 监听timer变化,移除不可点击样式
          $(".my-code-get").removeClass("huise")
          document.getElementById('new_yan').style.cursor = 'pointer'
        }
    }
    }
  }
</script>

<style scoped>
  .my-input{
    text-align: left;
    display: block;
    width: 400px;
    height: 35px;
    padding: 3px;
    margin: 20px calc(50% - 200px) 20px calc(50% - 200px);
    background:none; 
    outline:none; 
    border:0px;
    border-bottom: 2px solid #dcdcdc;
    border-bottom-left-radius: 1px;
    border-bottom-right-radius: 1px;
    box-sizing: border-box;
    font-family: PingFangSC-Regular;
    font-size: 16px;
  }
  .my-code{
    overflow: hidden;
  }
  .my-code-get{
    float: left;
    width: 120px;
    height: 35px;
    background-color: rgb(7, 187, 127);
    margin: 0 auto 20px 0;
    line-height: 35px;
    font-family: PingFangSC-Regular;
    color: #ffffff;
    border-radius: 5px;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
  }
  .my-code-get:active{
    background-color: #0F996B;
  }
  .my-code-get:hover{
    cursor: pointer;
  }
  .my-code-input{
    float: left;
    text-align: left;
    display: block;
    width: 280px;
    height: 35px;
    padding: 3px;
    margin: 0 auto 20px calc(50% - 200px);
    background:none; 
    outline:none; 
    border:0px;
    border-bottom: 2px solid #dcdcdc;
    border-bottom-left-radius: 1px;
    border-bottom-right-radius: 1px;
    box-sizing: border-box;
    font-family: PingFangSC-Regular;
    font-size: 16px;
  }
  .my-code-input:focus{
    border-bottom: 2px solid #0F996B;
    border-bottom-left-radius: 1px;
    border-bottom-right-radius: 1px;
  }
  .huise{
    background-color: #dcdcdc !important;
    color: black;
  }
</style>

以上这篇vue 验证码界面实现点击后标灰并设置div按钮不可点击状态就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Node.js中对通用模块的封装方法
Jun 06 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
Mar 25 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
JS实现动态添加DOM节点和事件的方法示例
Apr 28 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
解决webpack无法通过IP地址访问localhost的问题
Feb 22 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
从零开始用webpack构建一个vue3.0项目工程的实现
Sep 24 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 #Javascript
VUE.js实现动态设置输入框disabled属性
Oct 28 #Javascript
关于vue组件事件属性穿透详解
Oct 28 #Javascript
对vue中的事件穿透与禁止穿透实例详解
Oct 28 #Javascript
vue h5移动端禁止缩放代码
Oct 28 #Javascript
在Vue项目中,防止页面被缩放和放大示例
Oct 28 #Javascript
element-ui 本地化使用教程详解
Oct 28 #Javascript
You might like
使用php shell命令合并图片的代码
2011/06/23 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
webpack配置之后端渲染详解
2017/10/26 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
pycharm 使用心得(四)显示行号
2014/06/05 Python
彻底搞懂Python字符编码
2018/01/23 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
.net开发工程师面试题
2014/02/25 面试题
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
英语自荐信常用语句
2013/12/13 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
会计助理岗位职责
2014/02/17 职场文书
励志演讲稿600字
2014/08/21 职场文书
实习生工作证明范本
2014/09/14 职场文书
学校联谊协议书
2014/09/16 职场文书
python中的被动信息搜集
2021/04/29 Python
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
如何利用React实现图片识别App
2022/02/18 Javascript
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
Python列表的索引与切片
2022/04/07 Python