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 可以拖动的DIV(二)
Jun 26 Javascript
jquery multiSelect 多选下拉框
Jul 09 Javascript
js 第二代身份证号码的验证机制代码
May 12 Javascript
模拟select的代码
Oct 19 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
Dec 14 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
May 29 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
linux下实现定时执行php脚本
2015/02/13 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
jquery 插件 人性化的消息显示
2008/01/21 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
就业自荐信
2013/12/04 职场文书
创业女性典型材料
2014/05/02 职场文书
家长会欢迎词
2015/01/23 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
2015年妇女工作总结
2015/05/14 职场文书
优秀志愿者感言
2015/08/01 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript