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 相关文章推荐
老鱼 浅谈javascript面向对象编程
Mar 04 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
document.documentElement和document.body区别介绍
Sep 16 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
利用python分析access日志的方法
Oct 26 Javascript
浅谈JS中的常用选择器及属性、方法的调用
Jul 28 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
JavaScript中关于class的调用方法
2017/11/28 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
我的中国梦演讲稿高中篇
2014/08/19 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang