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 相关文章推荐
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
jQuery中复合选择器简单用法示例
Mar 31 jQuery
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 Javascript
使用JavaScript破解web
Sep 28 Javascript
vue-cli脚手架的.babelrc文件用法说明
Sep 11 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
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
PHP4实际应用经验篇(9)
2006/10/09 PHP
PHP 面向对象实现代码
2009/11/11 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
python二维键值数组生成转json的例子
2019/12/06 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python实现门限回归方式
2020/02/29 Python
Python序列化pickle模块使用详解
2020/03/05 Python
详解Python高阶函数
2020/08/15 Python
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
市场督导岗位职责
2015/04/10 职场文书