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 相关文章推荐
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
关于js中for in的缺陷浅析
Dec 02 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
node.js中的http.response.setHeader方法使用说明
Dec 14 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
thinkjs 文件上传功能实例代码
Nov 08 Javascript
如何开发出更好的JavaScript模块
Dec 22 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
原生js实现轮播图特效
May 04 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php构造函数的继承方法
2015/02/09 PHP
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python 删除非空文件夹的实例
2018/04/26 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
Python命令行click参数用法解析
2019/12/19 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
.net面试题
2016/09/17 面试题
what is the difference between ext2 and ext3
2015/08/25 面试题
应届生个人求职信模板
2013/11/26 职场文书
静心口服夜广告词
2014/03/20 职场文书
大学生社会实践方案
2014/05/11 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
患者身份识别制度
2015/08/06 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android