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 web页面刷新的方法收集
Jul 02 Javascript
JavaScript 加号(+)运算符号
Dec 06 Javascript
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
Require.js的基本用法详解
Jul 03 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
微信小程序关键字变色实现代码实例
Dec 13 Javascript
vue随机验证码组件的封装实现
Feb 19 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 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数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
php获取微信openid方法总结
2019/10/10 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Django URL传递参数的方法总结
2016/08/28 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python中logging日志库实例详解
2020/02/19 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
德国高尔夫商店:Par71.de
2020/11/29 全球购物
班委竞选演讲稿
2014/04/28 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
人与自然观后感
2015/06/16 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers