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 浮点数运算 精度问题
Oct 06 Javascript
javascript闭包的高级使用方法实例
Jul 04 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
整理一下常见的IE错误
Nov 18 Javascript
jQuery自定义插件详解及实例代码
Dec 29 Javascript
如何正确理解javascript的模块化
Mar 02 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
基于D3.js实现时钟效果
Jul 17 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 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
php调用mysql存储过程
2007/02/14 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
python读取mysql数据绘制条形图
2020/03/25 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
大学生应聘推荐信范文
2013/11/19 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
实习介绍信范文
2015/05/05 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
详解Redis主从复制实践
2021/05/19 Redis
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python